Speedup Prediction for Selective Compilation of Embedded Java Programs - PowerPoint PPT Presentation

About This Presentation
Title:

Speedup Prediction for Selective Compilation of Embedded Java Programs

Description:

Silicomp Research Institute, sous la direction de M. Sergio Yovine du ... Calcul ' Cat gorie de Byte-code. importante. faible. variable. Classification du Byte-code ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 33
Provided by: Prod239
Category:

less

Transcript and Presenter's Notes

Title: Speedup Prediction for Selective Compilation of Embedded Java Programs


1
Speedup Prediction for Selective Compilation of
Embedded Java Programs
V. Colin de Verdiere, S. Cros, C. Fabre, R. Guider Silicomp Research Institute S. Yovine Verimag
  • "Workshop on Embedded Software, EMSOFT'02".
    Grenoble, October 7-9, 2002. LNCS 2491.

2
Analyse du Byte-code Java par instrumentation
amélioration des performances par compilation
sélective
Sébastien Cros Mémoire dIngénieur C.N.A.M. en
Informatique Grenoble, 2 juillet 2002 Travaux
réalisés du 1er Février 2001 au 31 Janvier 2002
au sein de léquipe compilation du Silicomp
Research Institute, sous la direction de M.
Sergio Yovine du laboratoire VERIMAG.
3
Plan de la présentation
  • Projet Expresso Java pour lembarqué

4
Java
Interpreter
Java Native Interface
Data Area
Thread Area
JVM
Garbage Collector
Scheduler
Operating System
5
Java embarqué
Native code
Java Native Interface
Data Area
Thread Area
JRTS
Memory Allocation
Synthesized Scheduler
Real Time Operating System
6
Expresso
7
Plan de la présentation
  • Projet Expresso Java pour lembarqué
  • Génération de code natif prédiction de
    laccélération

8
Génération de code natif
 à la volée  - JIT
 statique  - AOT
  • Optimisations plus importantes
  • Conserve le code compilé.
  • Compilation du code
  • résident et chargé

Avantages
  • Utilisation de ressources
  • CPU RAM
  • Recompile à chaque exécution
  • Sacrifie la portabilité

Inconvénients
Expansion de la taille du code compilé
9
TurboJ
  • Compilateur java AOT
  • Du bytecode vers le code natif.
  • Utilisation du C comme langage intermédiaire.
  • Compile une fois, conserve le code compilé.
  • Optimisations globales.
  • Cohabitation du bytecode et du code natif à
    lexécution (exécution mixte).
  • Compilation sélective par méthode.

10
Compilation sélective
Application compilée
TurboJ
Liste des méthodes à compiler
11
Technique naïve de partitionnement
  • Hypothèses
  • Accélération constante quelque soit le type de
    Byte-code compilé.
  • Nombre de Byte-codes exécutés par une méthode
    reflète son temps d exécution.

Sélectionner les méthodes qui exécutent le plus
grand nombre de Byte-code.
12
Sélection des méthodes triées sur le nombre de
Byte-codes exécutés.
Nb de Byte-codes exécutés
1
2
3
4
méthodes
Peut-on prédire laccélération ?
13
(No Transcript)
14
Plan de la présentation
  • Projet Expresso Java pour lembarqué
  • Génération de code natif
  • Prédiction de laccélération

15
Classification du Byte-code
Type de Byte-code
Accélération
Catégorie de Byte-code
manipulation pile, branchement, variables
(locales, d instances, classes), arithmétique,
convertion de type
 Calcul 
importante
new, newarray, anewarray, multianewarray,
athrow, checkcast, instanceof, moniterenter,
moniterexit
 Forte interaction avec la machine virtuelle 
faible
 Appels de méthodes 
Invokevirtual, invokeinterface, invokestatic,
invokespecial
variable
16
Appel croisé
  • Appel entre une méthode compilée et une méthode
    interprétée ou native.

a
e
Interprétée
Interprétée
b
compilée
c
d
méthode
compilée
Native
17
Coût des appels
Méthode Appelante / Appelée
Int / Cpl
Cpl / Int
Accélération
Int / Int
Cpl / Cpl
invokevirtual
5
0.3
0.6
1
invokeinterface
0.6
2.5
1
0.5
invokestatic
0.6
5
1
0.4
1
0.5
invokespecial
5
0.4
Appels croisés
Appels directs
18
(No Transcript)
19
Modèle d accélération
Byte-codes exécutés
Appels croisés
20
(No Transcript)
21
Plan de la présentation
  • Projet Expresso Java pour lembarqué
  • Génération de code natif
  • Prédiction de laccélération
  • Mise en œuvre

22
Compilation sélective
Informations collectées
Application compilée
.class
Instrumentation de l application
Exécution typique
TurboJ
Analyse
Liste des méthodes à compiler
Byte-code Instrumenté
Analyse de l application
Compilation
23
Graphe d appels
1537
T.j()
8
10
5
C.m()
D.m()
A.m()
24
Appels de méthodes
  • invokespecial et invokestatic
  • gt Une méthode cible unique.
  • invokevirtual et invokeinterface
  • gt Polymorphisme Plusieurs cibles
    potentielles.

25
Cibles potentielles
Class A public String m()... Class B
extends A Class C extends B public
String m()... Class D extends B public
String m()...
  • public Int getId() return 0
  • public Int getId() return 1
  • public Int getId() return 2
  • public Int getId() return 3

Invokevirtual A.toString()V
T.j()
?.m()
26
Techniques mises en œuvre
  • Analyse de la hiérarchie de classes
  • gt retrouver les cibles potentielles de chaque
    point d appels.
  • Parcours du flot d exécution
  • gt retrouver la référence d un objet sur la
    pile d opérande.
  • Analyse de type intra-procédurale
  • gt réduire le nombre de compteurs d appels.

27
Compilation sélective
Informations collectées
Application compilée
.class
Instrumentation de l application
Exécution typique
TurboJ
Analyse
Liste des méthodes à compiler
Byte-code Instrumenté
Analyse de l application
Compilation
28
Algorithme glouton
Ens. des méthodes sélectionnées
a
a
5
5
b
b
1
1
Ens. des méthodes candidates
10
50
10
50
c
c
e
d
e
d
1
1
50
50
f
f
g
g
Évaluation du ratio pour chaque candidats
Sélection du candidat maximisant le ratio
29
(No Transcript)
30
Résultats
31
Conclusions
  • Outil 13000 lignes de Java, 80 classes
  • d instrumentation  Tprofiler  Collecte le
    graphe d appels
  • Outil d analyse  Tselect  Heuristique
    gloutonne
  • Axes dévolution
  • Analyse sélection initiale des méthodes
  • Modèle raffiner la classification du Byte-code

32
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com