Thèse soutenue

Combiner approches statique et dynamique pour modéliser la performance de boucles HPC

FR  |  
EN
Auteur / Autrice : Vincent Palomares
Direction : William Jalby
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 21/09/2015
Etablissement(s) : Versailles-St Quentin en Yvelines
Ecole(s) doctorale(s) : Ecole doctorale sciences et technologies de Versailles (2010-2015)
Partenaire(s) de recherche : Equipe de recherche : Laboratoire Parallélisme, Réseaux, Systèmes, Modélisation (PRISM)
Laboratoire : Parallélisme- Réseaux- Systèmes- Modélisation / PRISM
Jury : Président / Présidente : François Bodin
Examinateurs / Examinatrices : Alexandre Farcy, David J. Kuck
Rapporteurs / Rapporteuses : Denis Barthou, Henri-Pierre Charles

Résumé

FR  |  
EN

La complexité des CPUs s’est accrue considérablement depuis leurs débuts, introduisant des mécanismes comme le renommage de registres, l’exécution dans le désordre, la vectorisation, les préfetchers et les environnements multi-coeurs pour améliorer les performances avec chaque nouvelle génération de processeurs. Cependant, la difficulté a suivi la même tendance pour ce qui est a) d’utiliser ces mêmes mécanismes à leur plein potentiel, b) d’évaluer si un programme utilise une machine correctement, ou c) de savoir si le design d’un processeur répond bien aux besoins des utilisateurs.Cette thèse porte sur l’amélioration de l’observabilité des facteurs limitants dans les boucles de calcul intensif, ainsi que leurs interactions au sein de microarchitectures modernes.Nous introduirons d’abord un framework combinant CQA et DECAN (des outils d’analyse respectivement statique et dynamique) pour obtenir des métriques détaillées de performance sur des petits codelets et dans divers scénarios d’exécution.Nous présenterons ensuite PAMDA, une méthodologie d’analyse de performance tirant partie de l’analyse de codelets pour détecter d’éventuels problèmes de performance dans des applications de calcul à haute performance et en guider la résolution.Un travail permettant au modèle linéaire Cape de couvrir la microarchitecture Sandy Bridge de façon détaillée sera décrit, lui donnant plus de flexibilité pour effectuer du codesign matériel / logiciel. Il sera mis en pratique dans VP3, un outil évaluant les gains de performance atteignables en vectorisant des boucles.Nous décrirons finalement UFS, une approche combinant analyse statique et simulation au cycle près pour permettre l’estimation rapide du temps d’exécution d’une boucle en prenant en compte certaines des limites de l’exécution en désordre dans des microarchitectures modernes