thesis

Optimisation automatique dans un compilateur de talon de communication

Defense date:

Jan. 1, 1995

Edit

Institution:

Nice

Disciplines:

Directors:

Abstract EN:

Pas de résumé disponible.

Abstract FR:

Un compilateur de talon de communication (stub compiler) produit des routines d'emballage a partir d'une specification d'interface d'une application distribuee. Les routines d'emballage sont un goulot d'etranglement de performance bien connu. Neanmoins, aujourd'hui le code produit par les compilateurs de talon n'est pas tres performant. Ceci est du a l'utilisation des techniques d'implantation comme l'interpretation. Les techniques alternatives qui permettent une implantation plus performante sont tellement couteuse en taille du code qu'elles sont impossible a utiliser pour la totalite d'un specification d'interface. Dans cette these, nous avons concu et implante une methode d'optimisation qui permet au compilateur talon d'automatiser le compromis entre la taille du code et le temps d'execution pour des routines d'emballage. De telles optimisations seront indispensables dans le futur pour resoudre des problemes de performances cause par l'introduction des reseaux a haut debit, par des contraintes de materiel dans les systemes mobiles et par la connectivite globale de l'internet. Notre idee principale est d'utiliser une approche hybride entre les trois techniques d'implantation conventionnelle pour des routines d'emballages (interpretation, compilation, insertion en ligne). Le probleme d'optimisation qui se pose est le suivant: etant donne une specification d'interface d'une application i et une taille maximale pour le code d'emballage m, trouver une implantation des routines d'emballage pour i telle que le temps d'execution soit minimal et la taille du code soit inferieure a m. Nous avons observe qu'a l'execution de l'application les differentes routines sont utilisees avec une probabilite differente. Nous avons demontre ensuite que ces routines peuvent etre identifiees au niveau du compilateur de talon par une analyse statique du flot de controle combine. Nous avons developpe un modele qui permet d'etudier l'effet relatif des differentes alternatives d'optimisation sur la taille et le temps d'execution du code. Enfin, nous avons demontre que le probleme d'optimisation correspond a un probleme classique de recherche operationnelle (probleme du sac a dos/knapsack problem). Pour resoudre ce type de probleme, nous avons choisi une heuristique que nous avons implantee et validee avec plusieurs experiences. On montre par exemple qu'une augmentation de taille du code de 50% peut permettre d'eliminer 87 a 94% des appels a l'interpreteur