thesis

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

Defense date:

Jan. 1, 2002

Edit

Institution:

Paris 11

Disciplines:

Authors:

Directors:

Abstract EN:

Architectures of processors are increasingly complex. The number of their internal components increases and the average performances grow up but the performances observed are very far away from the optimal performances. The compilers also evolve, but their optimisations are not sufficient to exploit these architectures, because they use a static analysis of the program, and inaccurate models of performances. The goal of the thesis was a to study the elements to be set up to develop an intermediate approach between a completely automatic optimisation at compile time, and a manual optimisation without assistance. For this purpose we developed several dynamic analysis tools for the hierarchy memory, and we set up an environment to inter-connect heterogeneous analysis and optimisation tools. One of these tools, the cache visualization tool, presents in a graphical way the use of the caches and the statistics associated during the execution of programs. It permits to understand the interactions, which occur between data in the cache. We were also interested in simulation of complete processors to obtain more precise information on their behaviour. During optimisation work, it is difficult to know if were near or not to the optimal performance; we studied a method to obtain an upper bound of the program performance as if the hierarchy memory would behave in an ideal way. We put the basis of a systematic analysis and optimisation methodology using these tools, which we presented in a decision tree; each node represents an analysis or an optimisation to be realized and whose result directs towards the following nodes.

Abstract FR:

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.