Thèse soutenue

De l'interaction entre les supports d'exécution à tâches HPC et les bibliothèques de communications

FR  |  
EN
Auteur / Autrice : Philippe Swartvagher
Direction : Emmanuel Jeannot
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 29/11/2022
Etablissement(s) : Bordeaux
Ecole(s) doctorale(s) : École doctorale Mathématiques et informatique (Talence, Gironde ; 1991-....)
Partenaire(s) de recherche : Laboratoire : Institut national de recherche en informatique et en automatique (France). Centre de recherche Inria de l'université de Bordeaux (Bordeaux) - Laboratoire bordelais de recherche en informatique
Jury : Président / Présidente : Denis Barthou
Examinateurs / Examinatrices : Alexandre Denis, George Bosilca
Rapporteurs / Rapporteuses : Didem Unat, Arnaud Legrand

Résumé

FR  |  
EN

Les supercalculateurs sont utilisés pour résoudre des problèmes numériques complexes demandant beaucoup de ressources de calcul (simulations, prévisions météorologiques, modélisations, etc), impossibles à exécuter sur des ordinateurs classiques. Ces supercalculateurs sont composés de nombreux puissants ordinateurs, connectés par un réseau. Bien que la puissance de ces supercalculateurs ne cesse d'augmenter, le développement d'applications exploitant toute leur puissance de calcul est de plus en plus complexe. En effet, de nombreux aspects doivent être considérés: des unités de calculs hétérogènes qui se programment différemment, la hiérarchie mémoire et les transferts de données, les communications réseau, l'ordonnancement, etc. Pour parer à ces difficultés, les supports d'exécutions à tâches ont émergé: ils représentent les applications par des graphes de tâches. Les différentes opérations exécutées par l'application et les dépendances entre elles forment un graphe. Il suffit alors de donner une implémentation de chaque tâche pour les unités de calcul ciblées, les dépendances entre les tâches et le support d'exécution se charge d'exécuter l'application: ordonnancer les tâches sur les différentes unités de calcul, réaliser les transferts mémoire et les communications réseau nécessaires, etc.Dans cette thèse, nous explorons les différentes interactions possibles entre les supports d'exécution à tâches et la bibliothèque de communication utilisée pour réaliser les transferts réseau. L'objectif est de faire plus collaborer ces deux couches logicielles, pour améliorer la performances des applications exécutées. Pour analyser et comprendre les interactions entre les supports d'exécution et les communications, tracer les applications est une technique pertinente, malgré certaines limitations. C'est pourquoi nous commençons par évaluer les surcoûts possibles en termes de performances induits par un système de traces. Nous proposons des techniques pour réduire ces surcoûts et avons également évalué l'impact de la précision de la synchronisation d'horloge pour les traces distribuées. Ensuite, comme interaction positive entre un support d'exécution à tâches et la bibliothèque de communications, nous proposons une solution pour efficacement envoyer une même donnée à plusieurs destinataires, tout en respectant les contraintes du support d'exécution. D'autre part, nous considérons également les éventuelles interactions négatives, en évaluant les différentes sources d'interférences entre les calculs et les communications exécutés en parallèle, dégradant leurs performances respectives. Ayant observé que la contention mémoire entre les calculs et les communications a le plus d'impact, nous proposons finalement un modèle prédisant la répartition de la bande-passante mémoire entre les calculs et les communications. Ce modèle permet de mieux comprendre le comportement du composant mémoire en cas de contention et de prendre en compte ce phénomène dans les décisions du support d'exécution. Les contributions présentées montrent qu'améliorer les interactions entre les supports d'exécutions à tâches et les bibliothèques de communications a du potentiel pour améliorer les performances des applications HPC.