Thèse soutenue

Vers un environnement et une méthodologie d'optimisation de programmes sur la hiérarchie mémoire

FR  |  
EN
Auteur / Autrice : Gregory Watts
Direction : Olivier Temam
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance en 2002
Etablissement(s) : Paris 11

Résumé

FR  |  
EN

Les architectures de processeurs sont de plus en plus complexes. Le nombre de leurs composants internes augmente régulièrement, et bien que cela augmente leurs performances moyennes, les performances observées sont très éloignées des performances optimales. Les compilateurs évoluent également, mais les optimisations mises en œuvre ne sont pas suffisantes pour exploiter ces architectures, car ils utilisent une analyse statique du programme, et des modèles de performances imprécis. Le but de la thèse a été d'étudier les éléments a mettre en place pour développer une approche intermédiaire entre une optimisation totalement automatique à la compilation, et une optimisation manuelle sans assistance. Pour cela nous avons développe plusieurs outils d'analyse dynamique de la hiérarchie mémoire, et mis en œuvre un environnement pour interconnecter des outils d'analyse et d'optimisation hétérogène. Un de ces outils, le cache visualisation tool, présente de manière graphique l'utilisation des caches et les statistiques associées au cours de l'exécution de programmes. Il permet d'appréhender les interactions qui se produisent entre les données des caches. Nous nous sommes également intéressés à la simulation de processeurs complets afin d'avoir des informations plus précises sur leur fonctionnement. Un élément important lors de phases d'optimisation est de savoir si l'on est proche ou non de la performance optimale. Nous avons étudie une méthode permettant d'obtenir une borne supérieure de la performance du programme dans le cas ou la hiérarchie mémoire se comporterait de manière idéale. Nous avons cherche a mettre en œuvre une méthodologie systématique d'analyse et d'optimisation de programmes utilisant ces outils, que nous avons présente sous forme d'arbre de décision ou chaque nœud représente une analyse ou une optimisation a réaliser et dont le résultat oriente vers les nœuds suivants.