previous up next contents
Précédent : Compilation pour architectures Remonter : Compilation pour architectures Suivant : Environnement pour le

Optimisation de la localité des programmes

L'analyse de la localité des programmes est essentielle pour obtenir de bonnes performances sur les machines dotées d'une hiérarchie mémoire. Il s'agit de détecter les réutilisations potentielles de données et de caractériser les parties de structures de données sujettes à des réutilisations. Ces informations sont ensuite utilisées pour transformer les programmes afin d'améliorer l'utilisation de la hiérarchie mémoire. Ce type de transformations est essentiel pour une utilisation efficace des processeurs actuels dont le goulet d'étranglement principal est constitué par les accès à la mémoire.

Les travaux actuels portent sur l'analyse de la localité des accès à la mémoire dans les programmes irréguliers (les travaux précédents utilisaient la notion de fenêtre de références et concernaient les accès réguliers aux tableaux Fortran). En particulier, les applications C et C++ sont étudiées par une analyse dynamique des programmes. Les structures de données dont les accès sont inefficaces sont recherchées. A partir de ces informations, des méthodes d'amélioration de rangement des données en mémoire sont développées.