The Jikes Research Virtual Machine

Preview:

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.

Citation preview

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

Recommended