GAMOUDI Oussama
Direction de recherche : Nathalie DRACH-TEMAM
Co-encadrement : 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.
Soutenance : 03/07/2012
Membres du jury :
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
Publications 2009-2012
-
2012
- O. Gamoudi : “Optimisation adaptative appliquée au préchargement de données”, soutenance de thèse, soutenance 03/07/2012, direction de recherche Drach-temam, Nathalie, co-encadrement : Heydemann, Karine (2012)
-
2011
- O. Gamoudi, N. Drach, K. Heydemann : “Using runtime activity to dynamically filter out inefficient data prefetches”, Euro-Par European Conference on Parallel computing, vol. 6852, Lecture Notes in Computer Science, Bordeaux, France, pp. 338-350, (Springer) (2011)
-
2009
- O. Gamoudi, N. Drach, K. Heydemann : “Vers une méthode adaptative de préchargement de données”, SympA Symposium en Architecture de Machines, Toulouse, France (2009)