The Jikes Research Virtual Machine

268 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
268
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

The Jikes Research Virtual Machine

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. Perguntas? Perguntas? Divino C´esar S. Lucas (UNICAMP) Jikes - Research Virtual Machine 27 de Novembro de 2012 31 / 31

×