Jikes - Research Virtual Machine
Divino C´esar S. Lucas
Universidade Estadual de Campinas
27 de Novembro de 2012
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 1 / 31
Sum´ario
1 Introdu¸c˜ao e Preliminares
O que ´e Jikes RVM?
M´aquina Virtual Meta-circular
T´ecnica de Emula¸c˜ao
Forma¸c˜ao de Regi˜ao e Code Cache
Representa¸c˜ao Intermedi´aria
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Sum´ario
1 Introdu¸c˜ao e Preliminares
O que ´e Jikes RVM?
M´aquina Virtual Meta-circular
T´ecnica de Emula¸c˜ao
Forma¸c˜ao de Regi˜ao e Code Cache
Representa¸c˜ao Intermedi´aria
2 Adaptive Optimization System
Vis˜ao Geral do Sistema
Virtual Processors
Otimiza¸c˜ao Seletiva e Adaptativa
Inlining Adaptativo
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Sum´ario
1 Introdu¸c˜ao e Preliminares
O que ´e Jikes RVM?
M´aquina Virtual Meta-circular
T´ecnica de Emula¸c˜ao
Forma¸c˜ao de Regi˜ao e Code Cache
Representa¸c˜ao Intermedi´aria
2 Adaptive Optimization System
Vis˜ao Geral do Sistema
Virtual Processors
Otimiza¸c˜ao Seletiva e Adaptativa
Inlining Adaptativo
3 An´alise de Desempenho
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Sum´ario
1 Introdu¸c˜ao e Preliminares
O que ´e Jikes RVM?
M´aquina Virtual Meta-circular
T´ecnica de Emula¸c˜ao
Forma¸c˜ao de Regi˜ao e Code Cache
Representa¸c˜ao Intermedi´aria
2 Adaptive Optimization System
Vis˜ao Geral do Sistema
Virtual Processors
Otimiza¸c˜ao Seletiva e Adaptativa
Inlining Adaptativo
3 An´alise de Desempenho
4 Conclus˜oes
5 Perguntas
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Introdu¸c˜ao
Parte 1
Introdu¸c˜ao e Preliminares
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 3 / 31
Introdu¸c˜ao
O que ´e Jikes RVM?
M´aquina Virtual Java desenvolvida pela IBM.
Anteriormente conhecida como Jalapeno.
Com prop´osito apenas de pesquisa.
Escrita em Java. ´E uma MV meta-circular.
Dispon´ıvel para IA32 e PowerPC.
SIGPLAN 2012 Award: Mais de 200 artigos, 40 disserta¸c˜oes e 25
cursos em mais de 100 universidades.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 4 / 31
M´aquina Virtual Meta-circular
M´aquina Virtual Meta-circular
RVM Java
Source
Javac
RVM Java
Bytecode
Boot
Writer
Java
Boot
Runner
C
RVM
Process
RVM Kernel Bytecode
RVM Subsystems Bytecode
RVM Kernel
Binary
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 5 / 31
T´ecnica de Emula¸c˜ao
T´ecnica de Emula¸c˜ao
N˜ao utiliza interpreta¸c˜ao.
M´ultiplos n´ıveis de otimiza¸c˜ao.
M´ultiplas threads de compila¸c˜ao.
Modelo de otimiza¸c˜ao adaptativa.
A compila¸c˜ao pode ocorrer em trˆes situa¸c˜oes:
1 No carregamento da classe.
2 Na primeira invoca¸c˜ao do m´etodo.
3 Quando o subsistema de otimiza¸c˜ao achar lucrativo.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 6 / 31
T´ecnica de Emula¸c˜ao
Compiladores e Otimiza¸c˜oes
Baseline Compiler
Objetivo: gerar c´odigo nativo rapidamente.
Traduz Bytecode diretamente para c´odigo nativo.
N˜ao faz aloca¸c˜ao de registradores.
Optimizing Compiler
Possui de trˆes n´ıveis de otimiza¸c˜ao.
Todos os n´ıveis usam linear-scan (aloc. reg) e BURS (sel. instr).
Level 0:
Constant, type, non-null e copy propagation.
Constant folding, arithmetic simplification, branch optimizations
Dead code elimination e trivial inlinings.
Level 1:
Algumas otimiza¸c˜oes do Level 0.
Inlining agressivo (type hierarchy analyzis)
Level 2:
Loop Optimizations (unroll e normalize)
SSA-based flow-sensitive optimizations (GVN, GCSE, etc).
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 7 / 31
T´ecnica de Emula¸c˜ao
Custos e Speedups
Compilador Taxa de Compila¸c˜ao* Speedup**
Baseline 909.46 1.00
Level 0 39.53 (23x) 4.03
Level 1 18.48 (2.13x) 5.88
Level 2 17.28 (1.06x) 5.93
*Taxa de Compila¸c˜ao = Bytecode por milissegundos.
**Valores normalizados em rela¸c˜ao ao compilador Baseline.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 8 / 31
T´ecnica de Forma¸c˜ao de Regi˜oes
T´ecnica de Forma¸c˜ao de Regi˜oes
N˜ao forma tra¸cos nem super blocos.
Compila¸c˜ao ´e por m´etodo.
N˜ao utiliza cache de c´odigo.
Usa objeto para representar as informa¸c˜oes do m´etodo.
Stubs s˜ao inseridos para chamadas de m´etodos ainda n˜ao compilados.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 9 / 31
T´ecnica de Forma¸c˜ao de Regi˜oes
Objeto M´etodo. RVMMethod.java
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 10 / 31
T´ecnica de Forma¸c˜ao de Regi˜oes
Objeto M´etodo. CompiledMethod.java
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 11 / 31
Representa¸c˜ao Intermedi´aria
Representa¸c˜ao Intermedi´aria
Java Bytecode
Jikes High-level IR (HIR)
Representa¸c˜ao de trˆes endere¸cos.
Opera¸c˜oes similares `as de Bytecode.
Jikes Low-level IR (LIR)
Usa recursos especificos da Jikes (ex: modelo de objetos).
Jikes Machine-level IR (MIR)
Inclui detalhes da m´aquina alvo.
Similar a linguagem de montagem.
N´ıvel onde ´e feita a aloca¸c˜ao de registradores.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 12 / 31
Adaptive Optimization System
Parte 2
Adaptive Optimization System
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 13 / 31
Adaptive Optimization System
Vis˜ao Geral
Objetivos:
Selective and Adaptative Optimization
Quais m´etodos devem ser compilados?
Com qual n´ıvel de otimiza¸c˜ao?
Em que momento durante a execu¸c˜ao?
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
Adaptive Optimization System
Vis˜ao Geral
Objetivos:
Selective and Adaptative Optimization
Quais m´etodos devem ser compilados?
Com qual n´ıvel de otimiza¸c˜ao?
Em que momento durante a execu¸c˜ao?
Feedback-directed Inlining
Fazer o inlining de hot edges do DCG (Dynamic Call Graph).
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
Adaptive Optimization System
Vis˜ao Geral
Objetivos:
Selective and Adaptative Optimization
Quais m´etodos devem ser compilados?
Com qual n´ıvel de otimiza¸c˜ao?
Em que momento durante a execu¸c˜ao?
Feedback-directed Inlining
Fazer o inlining de hot edges do DCG (Dynamic Call Graph).
Extens´ıvel e Flex´ıvel
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
Adaptive Optimization System
Yeld Points e Virtual Processors
Uma thread pode ser interrompida somente em um destes pontos:
Em um pr´ologo de m´etodo.
Em um ep´ılogo de m´etodo.
Em uma backedge.
Virtual Processors tˆem“stop bit”para ativar troca de contexto.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 15 / 31
Adaptive Optimization System
Modelo de Custo. Defini¸c˜ao.
Seja:
M um conjunto de m´etodos e
α = {Am
j |0 ≤ j ≤ k, ∀m ∈ M} um conjunto de a¸c˜oes, onde:
Am
j significa compilar m´etodo m com n´ıvel de otimiza¸c˜ao j.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
Adaptive Optimization System
Modelo de Custo. Defini¸c˜ao.
Seja:
M um conjunto de m´etodos e
α = {Am
j |0 ≤ j ≤ k, ∀m ∈ M} um conjunto de a¸c˜oes, onde:
Am
j significa compilar m´etodo m com n´ıvel de otimiza¸c˜ao j.
Consideramos as fun¸c˜oes:
C(Am
j ) = Custo da a¸c˜ao Am
j .
T(Am
j ) = Tempo de execu¸c˜ao futuro de m se Am
j for executada.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
Adaptive Optimization System
Modelo de Custo. Defini¸c˜ao.
Seja:
M um conjunto de m´etodos e
α = {Am
j |0 ≤ j ≤ k, ∀m ∈ M} um conjunto de a¸c˜oes, onde:
Am
j significa compilar m´etodo m com n´ıvel de otimiza¸c˜ao j.
Consideramos as fun¸c˜oes:
C(Am
j ) = Custo da a¸c˜ao Am
j .
T(Am
j ) = Tempo de execu¸c˜ao futuro de m se Am
j for executada.
Para cada m´etodo m:
escolha a a¸c˜ao Am
j que minimiza C(Am
j ) + T(Am
j ).
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
Adaptive Optimization System
Modelo de Custo. Implementa¸c˜ao.
Definimos as fun¸c˜oes:
C(Am
j ) = f (tamanho(m))
T(Am
j ) = σ(m)δSi
Sj
Onde:
σ(m) = N´umero de amostras do m´etodo m.
δ = Tamanho do intervalo entre amostras.
σ(m)δ = Tempo (estimado) que m executou.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
Adaptive Optimization System
Modelo de Custo. Implementa¸c˜ao.
Definimos as fun¸c˜oes:
C(Am
j ) = f (tamanho(m))
T(Am
j ) = σ(m)δSi
Sj
Onde:
σ(m) = N´umero de amostras do m´etodo m.
δ = Tamanho do intervalo entre amostras.
σ(m)δ = Tempo (estimado) que m executou.
Tempo (estimado) que m executar´a!
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
Adaptive Optimization System
Modelo de Custo. Implementa¸c˜ao.
Definimos as fun¸c˜oes:
C(Am
j ) = f (tamanho(m))
T(Am
j ) = σ(m)δSi
Sj
Onde:
σ(m) = N´umero de amostras do m´etodo m.
δ = Tamanho do intervalo entre amostras.
σ(m)δ = Tempo (estimado) que m executou.
Tempo (estimado) que m executar´a!
Si
Sj
= Speedup do n´ıvel j em rela¸c˜ao ao n´ıvel i.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
Adaptive Optimization System
Arquitetura
Decay Organizer
Dynamic
Call Graph
Adaptive Inlining
Organizer
Call Edge
Samples
Method Sample
Data
Hot Methods
Organizer
Method
Samples
Priority Queue
Controller
Knowledge
Repository
Priority Queue
Compilation Thread
Baseline, Opt0,
Opt1, Opt2
Executing
Code
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 18 / 31
Adaptive Optimization System
Amostragem
Decay Organizer
Dynamic
Call Graph
Adaptive Inlining
Organizer
Call Edge
Samples
Method Sample
Data
Hot Methods
Organizer
Method
Samples
Priority Queue
Controller
Knowledge
Repository
Priority Queue
Compilation Thread
Baseline, Opt0,
Opt1, Opt2
Executing
Code
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 19 / 31
Adaptive Optimization System
Dete¸c˜ao de M´etodos Quentes
Decay Organizer
Dynamic
Call Graph
Adaptive Inlining
Organizer
Call Edge
Samples
Method Sample
Data
Hot Methods
Organizer
Method
Samples
Priority Queue
Controller
Knowledge
Repository
Priority Queue
Compilation Thread
Baseline, Opt0,
Opt1, Opt2
Executing
Code
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 20 / 31
Adaptive Optimization System
Controlador
Decay Organizer
Dynamic
Call Graph
Adaptive Inlining
Organizer
Call Edge
Samples
Method Sample
Data
Hot Methods
Organizer
Method
Samples
Priority Queue
Controller
Knowledge
Repository
Priority Queue
Compilation Thread
Baseline, Opt0,
Opt1, Opt2
Executing
Code
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 21 / 31
Adaptive Optimization System
Compiladores
Decay Organizer
Dynamic
Call Graph
Adaptive Inlining
Organizer
Call Edge
Samples
Method Sample
Data
Hot Methods
Organizer
Method
Samples
Priority Queue
Controller
Knowledge
Repository
Priority Queue
Compilation Thread
Baseline, Opt0,
Opt1, Opt2
Executing
Code
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 22 / 31
Adaptive Optimization System
Adaptative Inlining
Decay Organizer
Dynamic
Call Graph
Adaptive Inlining
Organizer
Call Edge
Samples
Method Sample
Data
Hot Methods
Organizer
Method
Samples
Priority Queue
Controller
Knowledge
Repository
Priority Queue
Compilation Thread
Baseline, Opt0,
Opt1, Opt2
Executing
Code
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 23 / 31
An´alise de Desempenho
Parte 3
An´alise de Desempenho
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 24 / 31
An´alise de Desempenho
Metodologia
Experimentos realizados com o SPECjvm98.
Training Set significa benchmarks com entrada“100”.
Production Set significa benchmarks com as demais entradas.
Experimentos realizados em uma m´aquina com um processador.
Resultados s˜ao da mediana de 10 execu¸c˜oes.
Constantes obtidas utilizando o Training Set.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 25 / 31
An´alise de Desempenho
Potencial da Abordagem Seletiva
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 26 / 31
An´alise de Desempenho
Potencial da Abordagem S. Baseada em Modelo
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 27 / 31
An´alise de Desempenho
Potencial da A. S. com M´ultiplos N´ıveis
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 28 / 31
Conclus˜oes
Parte 4
Conclus˜oes e Perguntas
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 29 / 31
Conclus˜oes
Conclus˜oes
Robusta abordagem dinˆamica para compila¸c˜ao seletiva.
AOS adapta-se melhor a diferentes cen´arios/benchmarks.
Projeto robusto e“f´acil”de expandir.
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 30 / 31
Perguntas?
Perguntas?
Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 31 / 31

The Jikes Research Virtual Machine

  • 1.
    Jikes - ResearchVirtual Machine Divino C´esar S. Lucas Universidade Estadual de Campinas 27 de Novembro de 2012 Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 1 / 31
  • 2.
    Sum´ario 1 Introdu¸c˜ao ePreliminares O que ´e Jikes RVM? M´aquina Virtual Meta-circular T´ecnica de Emula¸c˜ao Forma¸c˜ao de Regi˜ao e Code Cache Representa¸c˜ao Intermedi´aria Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
  • 3.
    Sum´ario 1 Introdu¸c˜ao ePreliminares O que ´e Jikes RVM? M´aquina Virtual Meta-circular T´ecnica de Emula¸c˜ao Forma¸c˜ao de Regi˜ao e Code Cache Representa¸c˜ao Intermedi´aria 2 Adaptive Optimization System Vis˜ao Geral do Sistema Virtual Processors Otimiza¸c˜ao Seletiva e Adaptativa Inlining Adaptativo Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
  • 4.
    Sum´ario 1 Introdu¸c˜ao ePreliminares O que ´e Jikes RVM? M´aquina Virtual Meta-circular T´ecnica de Emula¸c˜ao Forma¸c˜ao de Regi˜ao e Code Cache Representa¸c˜ao Intermedi´aria 2 Adaptive Optimization System Vis˜ao Geral do Sistema Virtual Processors Otimiza¸c˜ao Seletiva e Adaptativa Inlining Adaptativo 3 An´alise de Desempenho Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
  • 5.
    Sum´ario 1 Introdu¸c˜ao ePreliminares O que ´e Jikes RVM? M´aquina Virtual Meta-circular T´ecnica de Emula¸c˜ao Forma¸c˜ao de Regi˜ao e Code Cache Representa¸c˜ao Intermedi´aria 2 Adaptive Optimization System Vis˜ao Geral do Sistema Virtual Processors Otimiza¸c˜ao Seletiva e Adaptativa Inlining Adaptativo 3 An´alise de Desempenho 4 Conclus˜oes 5 Perguntas Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
  • 6.
    Introdu¸c˜ao Parte 1 Introdu¸c˜ao ePreliminares Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 3 / 31
  • 7.
    Introdu¸c˜ao O que ´eJikes RVM? M´aquina Virtual Java desenvolvida pela IBM. Anteriormente conhecida como Jalapeno. Com prop´osito apenas de pesquisa. Escrita em Java. ´E uma MV meta-circular. Dispon´ıvel para IA32 e PowerPC. SIGPLAN 2012 Award: Mais de 200 artigos, 40 disserta¸c˜oes e 25 cursos em mais de 100 universidades. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 4 / 31
  • 8.
    M´aquina Virtual Meta-circular M´aquinaVirtual Meta-circular RVM Java Source Javac RVM Java Bytecode Boot Writer Java Boot Runner C RVM Process RVM Kernel Bytecode RVM Subsystems Bytecode RVM Kernel Binary Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 5 / 31
  • 9.
    T´ecnica de Emula¸c˜ao T´ecnicade Emula¸c˜ao N˜ao utiliza interpreta¸c˜ao. M´ultiplos n´ıveis de otimiza¸c˜ao. M´ultiplas threads de compila¸c˜ao. Modelo de otimiza¸c˜ao adaptativa. A compila¸c˜ao pode ocorrer em trˆes situa¸c˜oes: 1 No carregamento da classe. 2 Na primeira invoca¸c˜ao do m´etodo. 3 Quando o subsistema de otimiza¸c˜ao achar lucrativo. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 6 / 31
  • 10.
    T´ecnica de Emula¸c˜ao Compiladorese Otimiza¸c˜oes Baseline Compiler Objetivo: gerar c´odigo nativo rapidamente. Traduz Bytecode diretamente para c´odigo nativo. N˜ao faz aloca¸c˜ao de registradores. Optimizing Compiler Possui de trˆes n´ıveis de otimiza¸c˜ao. Todos os n´ıveis usam linear-scan (aloc. reg) e BURS (sel. instr). Level 0: Constant, type, non-null e copy propagation. Constant folding, arithmetic simplification, branch optimizations Dead code elimination e trivial inlinings. Level 1: Algumas otimiza¸c˜oes do Level 0. Inlining agressivo (type hierarchy analyzis) Level 2: Loop Optimizations (unroll e normalize) SSA-based flow-sensitive optimizations (GVN, GCSE, etc). Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 7 / 31
  • 11.
    T´ecnica de Emula¸c˜ao Custose Speedups Compilador Taxa de Compila¸c˜ao* Speedup** Baseline 909.46 1.00 Level 0 39.53 (23x) 4.03 Level 1 18.48 (2.13x) 5.88 Level 2 17.28 (1.06x) 5.93 *Taxa de Compila¸c˜ao = Bytecode por milissegundos. **Valores normalizados em rela¸c˜ao ao compilador Baseline. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 8 / 31
  • 12.
    T´ecnica de Forma¸c˜aode Regi˜oes T´ecnica de Forma¸c˜ao de Regi˜oes N˜ao forma tra¸cos nem super blocos. Compila¸c˜ao ´e por m´etodo. N˜ao utiliza cache de c´odigo. Usa objeto para representar as informa¸c˜oes do m´etodo. Stubs s˜ao inseridos para chamadas de m´etodos ainda n˜ao compilados. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 9 / 31
  • 13.
    T´ecnica de Forma¸c˜aode Regi˜oes Objeto M´etodo. RVMMethod.java Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 10 / 31
  • 14.
    T´ecnica de Forma¸c˜aode Regi˜oes Objeto M´etodo. CompiledMethod.java Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 11 / 31
  • 15.
    Representa¸c˜ao Intermedi´aria Representa¸c˜ao Intermedi´aria JavaBytecode Jikes High-level IR (HIR) Representa¸c˜ao de trˆes endere¸cos. Opera¸c˜oes similares `as de Bytecode. Jikes Low-level IR (LIR) Usa recursos especificos da Jikes (ex: modelo de objetos). Jikes Machine-level IR (MIR) Inclui detalhes da m´aquina alvo. Similar a linguagem de montagem. N´ıvel onde ´e feita a aloca¸c˜ao de registradores. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 12 / 31
  • 16.
    Adaptive Optimization System Parte2 Adaptive Optimization System Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 13 / 31
  • 17.
    Adaptive Optimization System Vis˜aoGeral Objetivos: Selective and Adaptative Optimization Quais m´etodos devem ser compilados? Com qual n´ıvel de otimiza¸c˜ao? Em que momento durante a execu¸c˜ao? Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
  • 18.
    Adaptive Optimization System Vis˜aoGeral Objetivos: Selective and Adaptative Optimization Quais m´etodos devem ser compilados? Com qual n´ıvel de otimiza¸c˜ao? Em que momento durante a execu¸c˜ao? Feedback-directed Inlining Fazer o inlining de hot edges do DCG (Dynamic Call Graph). Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
  • 19.
    Adaptive Optimization System Vis˜aoGeral Objetivos: Selective and Adaptative Optimization Quais m´etodos devem ser compilados? Com qual n´ıvel de otimiza¸c˜ao? Em que momento durante a execu¸c˜ao? Feedback-directed Inlining Fazer o inlining de hot edges do DCG (Dynamic Call Graph). Extens´ıvel e Flex´ıvel Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
  • 20.
    Adaptive Optimization System YeldPoints e Virtual Processors Uma thread pode ser interrompida somente em um destes pontos: Em um pr´ologo de m´etodo. Em um ep´ılogo de m´etodo. Em uma backedge. Virtual Processors tˆem“stop bit”para ativar troca de contexto. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 15 / 31
  • 21.
    Adaptive Optimization System Modelode Custo. Defini¸c˜ao. Seja: M um conjunto de m´etodos e α = {Am j |0 ≤ j ≤ k, ∀m ∈ M} um conjunto de a¸c˜oes, onde: Am j significa compilar m´etodo m com n´ıvel de otimiza¸c˜ao j. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
  • 22.
    Adaptive Optimization System Modelode Custo. Defini¸c˜ao. Seja: M um conjunto de m´etodos e α = {Am j |0 ≤ j ≤ k, ∀m ∈ M} um conjunto de a¸c˜oes, onde: Am j significa compilar m´etodo m com n´ıvel de otimiza¸c˜ao j. Consideramos as fun¸c˜oes: C(Am j ) = Custo da a¸c˜ao Am j . T(Am j ) = Tempo de execu¸c˜ao futuro de m se Am j for executada. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
  • 23.
    Adaptive Optimization System Modelode Custo. Defini¸c˜ao. Seja: M um conjunto de m´etodos e α = {Am j |0 ≤ j ≤ k, ∀m ∈ M} um conjunto de a¸c˜oes, onde: Am j significa compilar m´etodo m com n´ıvel de otimiza¸c˜ao j. Consideramos as fun¸c˜oes: C(Am j ) = Custo da a¸c˜ao Am j . T(Am j ) = Tempo de execu¸c˜ao futuro de m se Am j for executada. Para cada m´etodo m: escolha a a¸c˜ao Am j que minimiza C(Am j ) + T(Am j ). Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
  • 24.
    Adaptive Optimization System Modelode Custo. Implementa¸c˜ao. Definimos as fun¸c˜oes: C(Am j ) = f (tamanho(m)) T(Am j ) = σ(m)δSi Sj Onde: σ(m) = N´umero de amostras do m´etodo m. δ = Tamanho do intervalo entre amostras. σ(m)δ = Tempo (estimado) que m executou. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
  • 25.
    Adaptive Optimization System Modelode Custo. Implementa¸c˜ao. Definimos as fun¸c˜oes: C(Am j ) = f (tamanho(m)) T(Am j ) = σ(m)δSi Sj Onde: σ(m) = N´umero de amostras do m´etodo m. δ = Tamanho do intervalo entre amostras. σ(m)δ = Tempo (estimado) que m executou. Tempo (estimado) que m executar´a! Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
  • 26.
    Adaptive Optimization System Modelode Custo. Implementa¸c˜ao. Definimos as fun¸c˜oes: C(Am j ) = f (tamanho(m)) T(Am j ) = σ(m)δSi Sj Onde: σ(m) = N´umero de amostras do m´etodo m. δ = Tamanho do intervalo entre amostras. σ(m)δ = Tempo (estimado) que m executou. Tempo (estimado) que m executar´a! Si Sj = Speedup do n´ıvel j em rela¸c˜ao ao n´ıvel i. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
  • 27.
    Adaptive Optimization System Arquitetura DecayOrganizer Dynamic Call Graph Adaptive Inlining Organizer Call Edge Samples Method Sample Data Hot Methods Organizer Method Samples Priority Queue Controller Knowledge Repository Priority Queue Compilation Thread Baseline, Opt0, Opt1, Opt2 Executing Code Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 18 / 31
  • 28.
    Adaptive Optimization System Amostragem DecayOrganizer Dynamic Call Graph Adaptive Inlining Organizer Call Edge Samples Method Sample Data Hot Methods Organizer Method Samples Priority Queue Controller Knowledge Repository Priority Queue Compilation Thread Baseline, Opt0, Opt1, Opt2 Executing Code Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 19 / 31
  • 29.
    Adaptive Optimization System Dete¸c˜aode M´etodos Quentes Decay Organizer Dynamic Call Graph Adaptive Inlining Organizer Call Edge Samples Method Sample Data Hot Methods Organizer Method Samples Priority Queue Controller Knowledge Repository Priority Queue Compilation Thread Baseline, Opt0, Opt1, Opt2 Executing Code Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 20 / 31
  • 30.
    Adaptive Optimization System Controlador DecayOrganizer Dynamic Call Graph Adaptive Inlining Organizer Call Edge Samples Method Sample Data Hot Methods Organizer Method Samples Priority Queue Controller Knowledge Repository Priority Queue Compilation Thread Baseline, Opt0, Opt1, Opt2 Executing Code Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 21 / 31
  • 31.
    Adaptive Optimization System Compiladores DecayOrganizer Dynamic Call Graph Adaptive Inlining Organizer Call Edge Samples Method Sample Data Hot Methods Organizer Method Samples Priority Queue Controller Knowledge Repository Priority Queue Compilation Thread Baseline, Opt0, Opt1, Opt2 Executing Code Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 22 / 31
  • 32.
    Adaptive Optimization System AdaptativeInlining Decay Organizer Dynamic Call Graph Adaptive Inlining Organizer Call Edge Samples Method Sample Data Hot Methods Organizer Method Samples Priority Queue Controller Knowledge Repository Priority Queue Compilation Thread Baseline, Opt0, Opt1, Opt2 Executing Code Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 23 / 31
  • 33.
    An´alise de Desempenho Parte3 An´alise de Desempenho Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 24 / 31
  • 34.
    An´alise de Desempenho Metodologia Experimentosrealizados com o SPECjvm98. Training Set significa benchmarks com entrada“100”. Production Set significa benchmarks com as demais entradas. Experimentos realizados em uma m´aquina com um processador. Resultados s˜ao da mediana de 10 execu¸c˜oes. Constantes obtidas utilizando o Training Set. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 25 / 31
  • 35.
    An´alise de Desempenho Potencialda Abordagem Seletiva Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 26 / 31
  • 36.
    An´alise de Desempenho Potencialda Abordagem S. Baseada em Modelo Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 27 / 31
  • 37.
    An´alise de Desempenho Potencialda A. S. com M´ultiplos N´ıveis Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 28 / 31
  • 38.
    Conclus˜oes Parte 4 Conclus˜oes ePerguntas Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 29 / 31
  • 39.
    Conclus˜oes Conclus˜oes Robusta abordagem dinˆamicapara compila¸c˜ao seletiva. AOS adapta-se melhor a diferentes cen´arios/benchmarks. Projeto robusto e“f´acil”de expandir. Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 30 / 31
  • 40.
    Perguntas? Perguntas? Divino C´esar S.Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 31 / 31