Topology-Aware Load Balancing for Performance Portability over Parallel High Performance Systems. (Équilibrage de charge prenant en compte la topologie des plates-formes de calcul parallèle pour la portabilité des performances)

Cette these presente nos travaux de recherche qui ont comme principal objectif d'assurer la portabilite des performances et le passage a l'echelle des applications scientifiques complexes executees sur des plates-formes multi-coeurs paralleles et hierarchiques. La portabilite des performances est obtenue lorsque l'ordonnancement des tâches d'une application permet de reduire les periodes d'inactivite des coeurs de la plate-forme. Cette portabilite des performances peut etre affectee par differents problemes tels que des desequilibres de charge, des communications couteuses et des surcouts provenant de l'ordonnancement des tâches. Le desequilibre de charge est la consequence de comportements de charges irregulieres et dynamiques, ou le volume de calcul varie dynamiquement en fonction de la tâche et de l'etape de simulation. Les communications couteuses sont provoquees par un ordonnancement qui ne prend pas en compte les differents temps de communication entre tâches sur une plate-forme hierarchique. Cela est accentue par des communications non uniformes et asymetriques au niveau memoire et reseau. Enfin, ces surcouts peuvent etre generes par des algorithmes de placement trop complexes dont les couts ne seraient pas compenses par les gains de performance.Pour atteindre cet objectif de portabilite des performances, notre approche repose sur une recolte d'informations precises sur la topologie de la machine qui vont aider les algorithmes d'ordonnancement de tâches a prendre les bonnes decisions. Dans ce contexte, nous avons propose une modelisation generique de la topologie des plates-formes paralleles. Le modele comprend des latences et des bandes passantes mesurees de la memoire et du reseau qui mettent en evidence des asymetries. Ces informations sont utilisees par nos trois algorithmes d'equilibrage de charge nommes NucoLB, HwTopoLB, et HierarchicalLB. De plus, ces algorithmes utilisent des informations provenant de l'execution de l'application. NucoLB se concentre sur les aspects non uniformes de plates-formes paralleles, alors que HwTopoLB considere l'ensemble de la hierarchie pour ses decisions, et HierarchicalLB combine ces algorithmes hierarchiquement pour reduire son surcout d'ordonnancement de tâches. Ces algorithmes cherchent a attenuer le desequilibre de charge et des communications couteuses tout en limitant les surcouts de migration des tâches. Les resultats experimentaux avec les trois regulateurs de charge proposes ont montre des ameliorations de performances sur les meilleurs algorithmes de l'etat de l'art: NucoLB a presente jusqu'a 19% d'amelioration de performances sur un noeud de calcul; HwTopoLB a ameliore les performances en moyenne de 19%, et HierarchicalLB a surclasse HwTopoLB de 22% en moyenne sur des plates-formes avec plus de dix noeuds de calcul. Ces resultats ont ete obtenus en repartissant la charge entre les ressources disponibles, en reduisant les couts de communication des applications, et en gardant les surcouts d'equilibrage de charge faibles. En ce sens, nos algorithmes d'equilibrage de charge permettent la portabilite des performances pour les applications scientifiques tout en etant independant de l'application et de l'architecture du systeme.