La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

EXPRESSO Speedup Prediction for Selective Compilation of Embedded Java Programs "Workshop on Embedded Software, EMSOFT'02". Grenoble, October 7-9, 2002.

Présentations similaires


Présentation au sujet: "EXPRESSO Speedup Prediction for Selective Compilation of Embedded Java Programs "Workshop on Embedded Software, EMSOFT'02". Grenoble, October 7-9, 2002."— Transcription de la présentation:

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

2 EXPRESSO 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 EXPRESSO 3 (c) Sergio Yovine - VERIMAG - Plan de la présentation Projet Expresso – Java pour lembarqué

4 EXPRESSO 4 (c) Sergio Yovine - VERIMAG - Java Garbage Collector Java Native Interface Scheduler Data AreaThread Area Interpreter Operating System JVM

5 EXPRESSO 5 (c) Sergio Yovine - VERIMAG - Java embarqué Memory Allocation Java Native Interface Synthesized Scheduler Data AreaThread Area Native code Real Time Operating System JRTS

6 EXPRESSO 6 (c) Sergio Yovine - VERIMAG - Expresso

7 EXPRESSO 7 (c) Sergio Yovine - VERIMAG - Plan de la présentation Projet Expresso – Java pour lembarqué Génération de code natif – prédiction de laccélération

8 EXPRESSO 8 (c) Sergio Yovine - VERIMAG - Génération de code natif « à la volée » - JIT Optimisations plus importantes Conserve le code compilé. « statique » - AOT Utilisation de ressources CPU & RAM Recompile à chaque exécution Sacrifie la portabilité Compilation du code résident et chargé Avantages Inconvénients Expansion de la taille du code compilé

9 EXPRESSO 9 (c) Sergio Yovine - VERIMAG - 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 EXPRESSO 10 (c) Sergio Yovine - VERIMAG - Compilation sélective TurboJ Instrumentation de l application.class Informations collectées Exécution typique Analyse Byte-code Instrumenté Analyse de l applicationCompilation Application compilée Liste des méthodes à compiler

11 EXPRESSO 11 (c) Sergio Yovine - VERIMAG - 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. Technique naïve de partitionnement Sélectionner les méthodes qui exécutent le plus grand nombre de Byte-code.

12 EXPRESSO 12 (c) Sergio Yovine - VERIMAG - Sélection des méthodes triées sur le nombre de Byte-codes exécutés. Nb de Byte-codes exécutés méthodes 1 Sélection 234 Peut-on prédire laccélération ?

13 EXPRESSO 13 (c) Sergio Yovine - VERIMAG -

14 EXPRESSO 14 (c) Sergio Yovine - VERIMAG - Plan de la présentation Projet Expresso – Java pour lembarqué Génération de code natif Prédiction de laccélération

15 EXPRESSO 15 (c) Sergio Yovine - VERIMAG - manipulation pile, branchement, variables (locales, d instances, classes), arithmétique, convertion de type new, newarray, anewarray, multianewarray, athrow, checkcast, instanceof, moniterenter, moniterexit Invokevirtual, invokeinterface, invokestatic, invokespecial Type de Byte-code « Appels de méthodes » Accélération « Forte interaction avec la machine virtuelle » « Calcul » Catégorie de Byte-code importante faible variable Classification du Byte-code

16 EXPRESSO 16 (c) Sergio Yovine - VERIMAG - Appel croisé Appel entre une méthode compilée et une méthode interprétée ou native. a b d Interprétée Native compilée c Appel Direct compilée méthode e Interprétée Appel Croisé

17 EXPRESSO 17 (c) Sergio Yovine - VERIMAG - Coût des appels Méthode Appelante / Appelée invokevirtual invokeinterface invokestatic Int / Int Int / CplCpl / Int Cpl / Cpl Appels croisésAppels directs invokespecial Accélération

18 EXPRESSO 18 (c) Sergio Yovine - VERIMAG -

19 EXPRESSO 19 (c) Sergio Yovine - VERIMAG - Modèle d accélération Byte-codes exécutés Appels croisés Nb Byte-codes exécutés compilés Nb appels croisés R =

20 EXPRESSO 20 (c) Sergio Yovine - VERIMAG -

21 EXPRESSO 21 (c) Sergio Yovine - VERIMAG - 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 EXPRESSO 22 (c) Sergio Yovine - VERIMAG - Compilation sélective TurboJ Instrumentation de l application.class Informations collectées Exécution typique Analyse Byte-code Instrumenté Analyse de l applicationCompilation Application compilée Liste des méthodes à compiler

23 EXPRESSO 23 (c) Sergio Yovine - VERIMAG - Graphe d appels T.j() C.m()D.m() A.m()

24 EXPRESSO 24 (c) Sergio Yovine - VERIMAG - Appels de méthodes invokespecial et invokestatic =>Une méthode cible unique. invokevirtual et invokeinterface => Polymorphisme : Plusieurs cibles potentielles.

25 EXPRESSO 25 (c) Sergio Yovine - VERIMAG - public Int getId (){ return 0;} public Int getId (){ return 1;} public Int getId (){ return 2;} public Int getId (){ return 3;} Cibles potentielles T.j() Invokevirtual A.toString()V ?.m() Class A { public String m (){...} } Class B extends A { } Class C extends B { public String m (){...} } Class D extends B { public String m (){...} } Invokevirtual A.getId()I T.j() C.m()D.m()A.m()

26 EXPRESSO 26 (c) Sergio Yovine - VERIMAG - Techniques mises en œuvre Analyse de la hiérarchie de classes => retrouver les cibles potentielles de chaque point d appels. Parcours du flot d exécution => retrouver la référence d un objet sur la pile d opérande. Analyse de type intra-procédurale => réduire le nombre de compteurs d appels.

27 EXPRESSO 27 (c) Sergio Yovine - VERIMAG - Compilation sélective TurboJ Instrumentation de l application.class Informations collectées Exécution typique Analyse Byte-code Instrumenté Analyse de l applicationCompilation Application compilée Liste des méthodes à compiler

28 EXPRESSO 28 (c) Sergio Yovine - VERIMAG - Algorithme glouton c d e f a b c d e f g g a b Ens. des méthodes sélectionnées Ens. des méthodes candidates Évaluation du ratio pour chaque candidats Sélection du candidat maximisant le ratio

29 EXPRESSO 29 (c) Sergio Yovine - VERIMAG -

30 EXPRESSO 30 (c) Sergio Yovine - VERIMAG - Résultats

31 EXPRESSO 31 (c) Sergio Yovine - VERIMAG - Conclusions Outil: 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 EXPRESSO 32 (c) Sergio Yovine - VERIMAG -


Télécharger ppt "EXPRESSO Speedup Prediction for Selective Compilation of Embedded Java Programs "Workshop on Embedded Software, EMSOFT'02". Grenoble, October 7-9, 2002."

Présentations similaires


Annonces Google