ESI LCSI SEPTEMBRE 2010
Université de Versailles Laboratoire PriSM
Sujet PFE (SIQ)
L’application automatique des transformations source guidée par différent critères
PProposé par : Lamia Djoudi
Co-encadrant : Chebieb [email protected]
La plupart des compilateurs récents appliquent de façon automatique un certain nombre d’optimisations qu’il serait fastidieux d’effectuer manuellement et qui rendraient le code source moins lisible.
Avant de commencer l’optimisation pour améliorer les performances, il faut avoir une bonne connaissance dur tout l’environnement de performance et optimisation.
Pour cela il faut:
– choisir les outils d’analyse de code afin de se focaliser sur les parties de code qui dégrade les performances.
– avoir des connaissances sur la plate forme, le processeur et le compilateur utilisés.
Une fois nous avons déterminé les parties des codes qui posent problème, la phase d’optimisation doit être lancée. Cette phase peut être au niveau source, assembleur ou au niveau binaire. Nous ne passons d’un niveau à l’autre que si que nous sommes rassurés qu’aucune chance ou solution est possible à ce niveau.
La question que nous pouvons poser est quand nous devons s’arrêter à un niveau et passer à l’autre? La réponse à cette question a fait l’objet de plusieurs projets de recherches et industriel.
Objectifs de stage:
Dans le cadre de notre projet, nous proposons ce stage afin de:
– Proposer les meilleurs optimisations au niveau source afin d’améliorer les performances;
– guider ces optimisations pour trouver un compromis selon les critères imposé: utilisateur, taille de code, qualité de code, … etc.
– Intégrer ces optimisations dans l’infrastructure de notre projet.
Déroulement du stage
La première phase sera consacrée à la mise en main l’outil de MAKS-MAQAO.
Cette phase nécessite la maitrise des architectures des compilateurs, l’optimisation des applications et la théorie de compilation. La 2eme phase sera l’insertion automatique des optimisations au niveau source (C et Fortran).
Ensuite faire le lien entre les recommandations proposées par différent acteurs et les optimisations proposées. Une série d’expériences doivent être faite afin de valider cette phase dans notre projet.