the jikes research virtual machine

40
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

Upload: john-tortugo

Post on 13-May-2015

69 views

Category:

Technology


1 download

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

Page 1: The Jikes Research Virtual Machine

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

Page 2: The Jikes Research Virtual Machine

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

Page 3: The Jikes Research Virtual Machine

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

Page 4: The Jikes Research Virtual Machine

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

Page 5: The Jikes Research Virtual Machine

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

Page 6: The Jikes Research Virtual Machine

Introducao

Parte 1Introducao e Preliminares

Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 3 / 31

Page 7: The Jikes Research Virtual Machine

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

Page 8: The Jikes Research Virtual Machine

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

Page 9: The Jikes Research Virtual Machine

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

Page 10: The Jikes Research Virtual Machine

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

Page 11: The Jikes Research Virtual Machine

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

Page 12: The Jikes Research Virtual Machine

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

Page 13: The Jikes Research Virtual Machine

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

Page 14: The Jikes Research Virtual Machine

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

Page 15: The Jikes Research Virtual Machine

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

Page 16: The Jikes Research Virtual Machine

Adaptive Optimization System

Parte 2Adaptive Optimization System

Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 13 / 31

Page 17: The Jikes Research Virtual Machine

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

Page 18: The Jikes Research Virtual Machine

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

Page 19: The Jikes Research Virtual Machine

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

Page 20: The Jikes Research Virtual Machine

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

Page 21: The Jikes Research Virtual Machine

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

Page 22: The Jikes Research Virtual Machine

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

Page 23: The Jikes Research Virtual Machine

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

Page 24: The Jikes Research Virtual Machine

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

Page 25: The Jikes Research Virtual Machine

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

Page 26: The Jikes Research Virtual Machine

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

Page 27: The Jikes Research Virtual Machine

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

Page 28: The Jikes Research Virtual Machine

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

Page 29: The Jikes Research Virtual Machine

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

Page 30: The Jikes Research Virtual Machine

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

Page 31: The Jikes Research Virtual Machine

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

Page 32: The Jikes Research Virtual Machine

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

Page 33: The Jikes Research Virtual Machine

Analise de Desempenho

Parte 3Analise de Desempenho

Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 24 / 31

Page 34: The Jikes Research Virtual Machine

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

Page 35: The Jikes Research Virtual Machine

Analise de Desempenho

Potencial da Abordagem Seletiva

Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 26 / 31

Page 36: The Jikes Research Virtual Machine

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

Page 37: The Jikes Research Virtual Machine

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

Page 38: The Jikes Research Virtual Machine

Conclusoes

Parte 4Conclusoes e Perguntas

Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 29 / 31

Page 39: The Jikes Research Virtual Machine

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

Page 40: The Jikes Research Virtual Machine

Perguntas?

Perguntas?

Divino Cesar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 31 / 31