GAMOUDI Oussama

PhD student at Sorbonne University
Team : ALSOC
https://lip6.fr/Oussama.Gamoudi

Supervision : Nathalie DRACH-TEMAM

Co-supervision : HEYDEMANN Karine

Optimisation adaptative appliquée au préchargement de données

Le préchargement de données est une solution qui a été proposée pour optimiser la performance du cache en anticipant la demande à la mémoire des données nécessaires au processeur. L'efficacité du préchargement repose sur sa capacité à détecter les données à précharger et surtout à les précharger au bon moment. Un préchargement réalisé trop tôt peut être évincé avant son référencement ce qui risque de polluer le cache et d'occuper la bande passante, tandis qu'un préchargement lancé trop tard masque seulement une partie de la latence mémoire. L'utilité du préchargement varie tout au long de l'exécution d'une application, à cause des phases existantes dans un programme et du comportement des applications exécutées. Il est donc important de contrôler les requêtes de préchargement afin de tirer profit de ce dernier tout en réduisant son effet négatif.
Certains événements dynamiques (connus à l'exécution) tels que le nombre de défauts de cache L1/L2, le nombre de branchements exécutés, etc. peuvent caractériser le comportement dynamique des applications prises individuellement ou exécutées simultanément. Les architectures actuelles incluent des compteurs matériels permettant de comptabiliser le nombre d'occurrences de certains événements au cours de l'exécution. Ces compteurs permettent d'obtenir des informations sur le comportement dynamique des applications.
Dans ce travail, nous avons montré qu'il existe des événements capables de discriminer les intervalles d'exécution pendant lesquels le préchargement est bénéfique de ceux où il ne l'est pas. Nous avons montré également que l'espace des événements peut être partitionné en régions telles que plus de 90% des vecteurs d'événements de ces régions aboutissent au même effet de préchargement.
Nous avons proposé ensuite, une nouvelle approche permettant d'exploiter la corrélation entre les événements d'exécution et l'efficacité de préchargement afin de filtrer à l'exécution les requêtes de préchargement selon leurs efficacités: celles qui sont jugées efficaces sont lancées et celles qui s'avèrent inutiles sont invalidées.
Enfin, nous avons présenté une évaluation du filtre proposé sur différentes architectures (monoprocesseur exécutant un seul programme, SMT, et multiprocesseurs) afin de mettre en évidence l'impact de la variation de l'environnement d'exécution et l'interaction des programmes exécutés simultanément sur l'utilité du préchargement. Les résultats expérimentaux montrent que notre solution est capable de filtrer la plupart des requêtes inutiles et de tirer profit du préchargement.

Defence : 07/03/2012

Jury members :

Philippe Clauss, professeur, Université de Strasbourg [rapporteur]
André Seznec, directeur de recherche, INRIA Rennes/IRISA [rapporteur]
Nathalie Drach-Temam, professeur LIP6/UPMC
Karine Heydemann, maître de conférences, LIP6/UPMC
Jean-Luc Lamotte, professeur, LIP6/UPMC
Pascal Sainrat, professeur, Université Paul Sabatier à Toulouse

Departure date : 07/03/2012

2009-2012 Publications