La science d’aujourd’hui utilise de plus en plus la simulation pour modéliser et comprendre le monde qui nous entoure.
Pour permettre à celles-ci d’être plus rapides, précises et modélisant de plus grand phénomènes, les scientifiques utilisent des supercalculateurs, domaine d’expertise du Calcul Haute-Performance. Or, à mesure que la demande en puissance de calcul grandit, ces machines se doivent d’être de plus en plus performantes. Seulement, la réduction de la taille des transistors prévue par la loi de Moore ne suffit plus à diriger l’évolution des processeurs, noyau de la puissance des supercalculateurs. Ainsi, pour continuer à être capable de répondre à cette demande, ces machines deviennent de plus en plus complexes. Et les performances des applications HPC dépendent des inter- actions entre les nombreux comportements des applications, les architectures des processeurs de plus en plus complexes et des choix faits par les différentes piles logi- cielle. Les efforts à fournir pour l’optimisation des performances des applications sur les machines sont donc de plus en plus importants. Une solution pour simplifier ces efforts d’optimisation et obtenir de meilleures performances des applications est de rassembler l’ensemble des acteurs du HPC dans un environnement de codesign pour la conception des futures machines. Ainsi, dans un tel environnement où les choix faits par les concepteurs sont dirigés par les intérêts des applications, les processeurs et la pile logicielle seront adaptés aux besoins des futurs utilisateurs. Cela est encore plus important depuis la récente arrivée de l’environnement Arm en HPC, représentant 10% de la puissance de calcul totale du Top500 avec seulement 6 machines. En effet, celui-ci offre une plus grande liberté aux constructeurs dans les choix des caractéristiques des processeurs. Seulement, dans un tel environnement de codesign, il est nécessaire d’utiliser une approche de prédiction de performance prenant en compte l’impact des choix faits par l’ensemble des acteurs pour pouvoir effectuer une exploration viable de l’espace de conception. Au cours de cette thèse, nous mettons en place une approche de projection de performance adaptée à notre définition d’un environnement de codesign re- groupant les acteurs et les aspects des performances des applications en 3 groupes : l’application, la pile logicielle et le matériel. Ce modèle se présente en trois étapes pour effectuer la projection d’un triplet application/pile logicielle/matériel source, et accessible, vers un futur triplet cible d’intérêt, et inaccessible. Ces étapes sont : la caractérisation des performances sur nos trois aspects, suivi de l’analyse des performances sur le triplet source qui va enfin conduire à une projection des performances vers le triplet cible en fonction des différences entre les paramètres de celui-ci et du triplet source. Cette approche est ensuite implémentée à l’aide d’une représentation fondée sur le modèle Roofline dans laquelle on se concentre sur le maximum de performance atteignable par les triplets et on projette les per- formances avec une hypothèse de conservation de l’efficacité architecturale. Nous utilisons ensuite ce modèle pour l’analyse et l’exploration de paramètres matériels tels que la taille des vecteurs ou le choix du type de mémoire sur différentes archi- tectures de cœurs Arm.
Enfin, nous étendons cette exploration à des architectures multicœurs en affinant la caractérisation de la bande passante et le travail effectués par chaque cœur. L’utilisation de cette approche se concentre sur l’exploration de paramètres applicatifs et de pile logicielle sur une future architecture d’intérêt pour le HPC : le processeur EPI (pour European Processor Initiative)