the jikes research virtual machine
DESCRIPTION
These are the slides of a lecture I gave in the "Virtual Machines" class at UNICAMP (www.ic.unicamp.br). The lecture is abou the Jikes RVM, specifically the Adaptative Optimization Model used to decide which portions and what optimization level should be used to compiled/recompiled the guest application code.TRANSCRIPT
Jikes - Research Virtual Machine
Divino Cesar S. Lucas
Universidade Estadual de Campinas
27 de Novembro de 2012
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 1 / 31
Sumario
1 Introducao e Preliminares
O que e Jikes RVM?Maquina Virtual Meta-circularTecnica de EmulacaoFormacao de Regiao e Code CacheRepresentacao Intermediaria
2 Adaptive Optimization System
Visao Geral do SistemaVirtual ProcessorsOtimizacao Seletiva e AdaptativaInlining Adaptativo
3 Analise de Desempenho
4 Conclusoes
5 Perguntas
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Sumario
1 Introducao e Preliminares
O que e Jikes RVM?Maquina Virtual Meta-circularTecnica de EmulacaoFormacao de Regiao e Code CacheRepresentacao Intermediaria
2 Adaptive Optimization System
Visao Geral do SistemaVirtual ProcessorsOtimizacao Seletiva e AdaptativaInlining Adaptativo
3 Analise de Desempenho
4 Conclusoes
5 Perguntas
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Sumario
1 Introducao e Preliminares
O que e Jikes RVM?Maquina Virtual Meta-circularTecnica de EmulacaoFormacao de Regiao e Code CacheRepresentacao Intermediaria
2 Adaptive Optimization System
Visao Geral do SistemaVirtual ProcessorsOtimizacao Seletiva e AdaptativaInlining Adaptativo
3 Analise de Desempenho
4 Conclusoes
5 Perguntas
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Sumario
1 Introducao e Preliminares
O que e Jikes RVM?Maquina Virtual Meta-circularTecnica de EmulacaoFormacao de Regiao e Code CacheRepresentacao Intermediaria
2 Adaptive Optimization System
Visao Geral do SistemaVirtual ProcessorsOtimizacao Seletiva e AdaptativaInlining Adaptativo
3 Analise de Desempenho
4 Conclusoes
5 Perguntas
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 2 / 31
Introducao
Parte 1Introducao e Preliminares
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 3 / 31
Introducao
O que e Jikes RVM?
Maquina Virtual Java desenvolvida pela IBM.
Anteriormente conhecida como Jalapeno.
Com proposito 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 dissertacoes e 25cursos em mais de 100 universidades.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 4 / 31
Maquina Virtual Meta-circular
Maquina Virtual Meta-circular
RVM JavaSource
JavacRVM JavaBytecode
BootWriter
Java
BootRunner
C
RVMProcess
RVM Kernel Bytecode
RVM Subsystems Bytecode
RVM Kernel
Binary
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 5 / 31
Tecnica de Emulacao
Tecnica de Emulacao
Nao utiliza interpretacao.
Multiplos nıveis de otimizacao.
Multiplas threads de compilacao.
Modelo de otimizacao adaptativa.
A compilacao pode ocorrer em tres situacoes:1 No carregamento da classe.2 Na primeira invocacao do metodo.3 Quando o subsistema de otimizacao achar lucrativo.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 6 / 31
Tecnica de Emulacao
Compiladores e Otimizacoes
Baseline CompilerObjetivo: gerar codigo nativo rapidamente.Traduz Bytecode diretamente para codigo nativo.Nao faz alocacao de registradores.
Optimizing CompilerPossui de tres nıveis de otimizacao.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 optimizationsDead code elimination e trivial inlinings.
Level 1:Algumas otimizacoes do Level 0.Inlining agressivo (type hierarchy analyzis)
Level 2:Loop Optimizations (unroll e normalize)SSA-based flow-sensitive optimizations (GVN, GCSE, etc).
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 7 / 31
Tecnica de Emulacao
Custos e Speedups
Compilador Taxa de Compilacao* Speedup**Baseline 909.46 1.00Level 0 39.53 (23x) 4.03Level 1 18.48 (2.13x) 5.88Level 2 17.28 (1.06x) 5.93
*Taxa de Compilacao = Bytecode por milissegundos.**Valores normalizados em relacao ao compilador Baseline.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 8 / 31
Tecnica de Formacao de Regioes
Tecnica de Formacao de Regioes
Nao forma tracos nem super blocos.
Compilacao e por metodo.
Nao utiliza cache de codigo.
Usa objeto para representar as informacoes do metodo.
Stubs sao inseridos para chamadas de metodos ainda nao compilados.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 9 / 31
Tecnica de Formacao de Regioes
Objeto Metodo. RVMMethod.java
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 10 / 31
Tecnica de Formacao de Regioes
Objeto Metodo. CompiledMethod.java
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 11 / 31
Representacao Intermediaria
Representacao Intermediaria
Java Bytecode
Jikes High-level IR (HIR)
Representacao de tres enderecos.Operacoes 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 maquina alvo.Similar a linguagem de montagem.Nıvel onde e feita a alocacao de registradores.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 12 / 31
Adaptive Optimization System
Parte 2Adaptive Optimization System
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 13 / 31
Adaptive Optimization System
Visao Geral
Objetivos:
Selective and Adaptative Optimization
Quais metodos devem ser compilados?Com qual nıvel de otimizacao?Em que momento durante a execucao?
Feedback-directed Inlining
Fazer o inlining de hot edges do DCG (Dynamic Call Graph).
Extensıvel e Flexıvel
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
Adaptive Optimization System
Visao Geral
Objetivos:
Selective and Adaptative Optimization
Quais metodos devem ser compilados?Com qual nıvel de otimizacao?Em que momento durante a execucao?
Feedback-directed Inlining
Fazer o inlining de hot edges do DCG (Dynamic Call Graph).
Extensıvel e Flexıvel
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 14 / 31
Adaptive Optimization System
Visao Geral
Objetivos:
Selective and Adaptative Optimization
Quais metodos devem ser compilados?Com qual nıvel de otimizacao?Em que momento durante a execucao?
Feedback-directed Inlining
Fazer o inlining de hot edges do DCG (Dynamic Call Graph).
Extensıvel e Flexıvel
Divino Cesar 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 prologo de metodo.
Em um epılogo de metodo.
Em uma backedge.
Virtual Processors tem “stop bit” para ativar troca de contexto.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 15 / 31
Adaptive Optimization System
Modelo de Custo. Definicao.
Seja:M um conjunto de metodos eα = {Am
j |0 ≤ j ≤ k,∀m ∈ M} um conjunto de acoes, onde:Amj significa compilar metodo m com nıvel de otimizacao j .
Consideramos as funcoes:C (Am
j ) = Custo da acao Amj .
T (Amj ) = Tempo de execucao futuro de m se Am
j for executada.
Para cada metodo m:escolha a acao Am
j que minimiza C (Amj ) + T (Am
j ).
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
Adaptive Optimization System
Modelo de Custo. Definicao.
Seja:M um conjunto de metodos eα = {Am
j |0 ≤ j ≤ k,∀m ∈ M} um conjunto de acoes, onde:Amj significa compilar metodo m com nıvel de otimizacao j .
Consideramos as funcoes:C (Am
j ) = Custo da acao Amj .
T (Amj ) = Tempo de execucao futuro de m se Am
j for executada.
Para cada metodo m:escolha a acao Am
j que minimiza C (Amj ) + T (Am
j ).
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
Adaptive Optimization System
Modelo de Custo. Definicao.
Seja:M um conjunto de metodos eα = {Am
j |0 ≤ j ≤ k,∀m ∈ M} um conjunto de acoes, onde:Amj significa compilar metodo m com nıvel de otimizacao j .
Consideramos as funcoes:C (Am
j ) = Custo da acao Amj .
T (Amj ) = Tempo de execucao futuro de m se Am
j for executada.
Para cada metodo m:escolha a acao Am
j que minimiza C (Amj ) + T (Am
j ).
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 16 / 31
Adaptive Optimization System
Modelo de Custo. Implementacao.
Definimos as funcoes:C (Am
j ) = f (tamanho(m))
T (Amj ) = σ(m)δSi
Sj
Onde:σ(m) = Numero de amostras do metodo m.δ = Tamanho do intervalo entre amostras.σ(m)δ = Tempo (estimado) que m executou.
Tempo (estimado) que m executara!SiSj
= Speedup do nıvel j em relacao ao nıvel i .
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
Adaptive Optimization System
Modelo de Custo. Implementacao.
Definimos as funcoes:C (Am
j ) = f (tamanho(m))
T (Amj ) = σ(m)δSi
Sj
Onde:σ(m) = Numero de amostras do metodo m.δ = Tamanho do intervalo entre amostras.σ(m)δ = Tempo (estimado) que m executou.
Tempo (estimado) que m executara!
SiSj
= Speedup do nıvel j em relacao ao nıvel i .
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
Adaptive Optimization System
Modelo de Custo. Implementacao.
Definimos as funcoes:C (Am
j ) = f (tamanho(m))
T (Amj ) = σ(m)δSi
Sj
Onde:σ(m) = Numero de amostras do metodo m.δ = Tamanho do intervalo entre amostras.σ(m)δ = Tempo (estimado) que m executou.
Tempo (estimado) que m executara!SiSj
= Speedup do nıvel j em relacao ao nıvel i .
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 17 / 31
Adaptive Optimization System
Arquitetura
Decay Organizer
DynamicCall Graph
Adaptive InliningOrganizer
Call EdgeSamples
Method SampleData
Hot MethodsOrganizer
MethodSamples
Priority Queue
Controller
KnowledgeRepository
Priority Queue
Compilation Thread
Baseline, Opt0,Opt1, Opt2
ExecutingCode
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 18 / 31
Adaptive Optimization System
Amostragem
Decay Organizer
DynamicCall Graph
Adaptive InliningOrganizer
Call EdgeSamples
Method SampleData
Hot MethodsOrganizer
MethodSamples
Priority Queue
Controller
KnowledgeRepository
Priority Queue
Compilation Thread
Baseline, Opt0,Opt1, Opt2
ExecutingCode
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 19 / 31
Adaptive Optimization System
Detecao de Metodos Quentes
Decay Organizer
DynamicCall Graph
Adaptive InliningOrganizer
Call EdgeSamples
Method SampleData
Hot MethodsOrganizer
MethodSamples
Priority Queue
Controller
KnowledgeRepository
Priority Queue
Compilation Thread
Baseline, Opt0,Opt1, Opt2
ExecutingCode
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 20 / 31
Adaptive Optimization System
Controlador
Decay Organizer
DynamicCall Graph
Adaptive InliningOrganizer
Call EdgeSamples
Method SampleData
Hot MethodsOrganizer
MethodSamples
Priority Queue
Controller
KnowledgeRepository
Priority Queue
Compilation Thread
Baseline, Opt0,Opt1, Opt2
ExecutingCode
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 21 / 31
Adaptive Optimization System
Compiladores
Decay Organizer
DynamicCall Graph
Adaptive InliningOrganizer
Call EdgeSamples
Method SampleData
Hot MethodsOrganizer
MethodSamples
Priority Queue
Controller
KnowledgeRepository
Priority Queue
Compilation Thread
Baseline, Opt0,Opt1, Opt2
ExecutingCode
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 22 / 31
Adaptive Optimization System
Adaptative Inlining
Decay Organizer
DynamicCall Graph
Adaptive InliningOrganizer
Call EdgeSamples
Method SampleData
Hot MethodsOrganizer
MethodSamples
Priority Queue
Controller
KnowledgeRepository
Priority Queue
Compilation Thread
Baseline, Opt0,Opt1, Opt2
ExecutingCode
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 23 / 31
Analise de Desempenho
Parte 3Analise de Desempenho
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 24 / 31
Analise 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 maquina com um processador.
Resultados sao da mediana de 10 execucoes.
Constantes obtidas utilizando o Training Set.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 25 / 31
Analise de Desempenho
Potencial da Abordagem Seletiva
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 26 / 31
Analise de Desempenho
Potencial da Abordagem S. Baseada em Modelo
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 27 / 31
Analise de Desempenho
Potencial da A. S. com Multiplos Nıveis
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 28 / 31
Conclusoes
Parte 4Conclusoes e Perguntas
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 29 / 31
Conclusoes
Conclusoes
Robusta abordagem dinamica para compilacao seletiva.
AOS adapta-se melhor a diferentes cenarios/benchmarks.
Projeto robusto e “facil” de expandir.
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 30 / 31
Perguntas?
Perguntas?
Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 31 / 31