De l’interaction des communications et de l’ordonnancement de threads au sein des grappes de machines multi-cœurs
Auteur / Autrice : | François Trahay |
Direction : | Raymond Namyst, Alexandre Denis |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 13/11/2009 |
Etablissement(s) : | Bordeaux 1 |
Ecole(s) doctorale(s) : | École doctorale Mathématiques et informatique (Talence, Gironde ; 1991-....) |
Jury : | Président / Présidente : Jean Roman |
Examinateurs / Examinatrices : Luc Bougé, Olivier Glück | |
Rapporteurs / Rapporteuses : Franck Capello, Jean-François Méhaut |
Mots clés
Mots clés contrôlés
Résumé
La tendance actuelle des constructeurs pour le calcul scientifique est à l'utilisation de grappes de machines dont les noeuds comportent un nombre de coeurs toujours plus grand. Le modèle basé uniquement sur MPI laisse peu à peu la place à des modèles mélangeant l'utilisation de threads et de MPI. Ce changement de modèle entraîne de nombreuses problématiques car les implémentations MPI n'ont pas été conçues pour supporter les applications multi-threadées. Dans cette thèse, afin de garantir le bon fonctionnement des communications, nous proposons un module logiciel faisant interagir l'ordonnanceur de threads et la bibliothèque de communication. Ce gestionnaire d'entrées/sorties générique prend en charge la détection des événements du réseau et exploite les multiples unités de calcul présentes sur la machine de manière transparente. Grâce à la collaboration étroite avec l'ordonnanceur de threads, le gestionnaire d'entrées/sorties que nous proposons assure un haut niveau de réactivité aux événements du réseau. Nous montrons qu'il est ainsi possible de faire progresser les communications réseau en arrière-plan et donc de recouvrir les communications par du calcul. La parallélisation de la bibliothèque de communication est également facilité par un mécanisme d'exportation de tâches capable d'exploiter les différentes unités de calcul disponible tout en prenant en compte la localité des données. Les gains obtenus sur des tests synthétiques et sur des applications montre que l'interaction entre la bibliothèque de communication et l'ordonnanceur de threads permet de réduire le coût des communications et donc d'améliorer les performances d'une application.