Thèse soutenue

De l’interaction des communications et de l’ordonnancement de threads au sein des grappes de machines multi-cœurs

FR  |  
EN
Auteur / Autrice : François Trahay
Direction : Raymond NamystAlexandre 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

FR  |  
EN

Résumé

FR  |  
EN

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.