Exploitation efficace des architectures parallèles de type grappes de NUMA à l'aide de modèles hybrides de programmation / Jérôme Clet-Ortega ; sous la direction de Raymond Namyst et de Guillaume Mercier

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : français / French

Calcul intensif (informatique)

Grilles informatiques

Programmation parallèle (informatique)

Hiérarchie de mémoire (informatique)

NUMA (informatique)

Namyst, Raymond (1969-....) (Directeur de thèse / thesis advisor)

Mercier, Guillaume (1976-....) (Directeur de thèse / thesis advisor)

Barthou, Denis (1970-....) (Président du jury de soutenance / praeses)

Denneulin, Yves (19..-....) (Rapporteur de la thèse / thesis reporter)

Pérez, Christian (19..-.... ; chercheur en informatique) (Rapporteur de la thèse / thesis reporter)

Université Bordeaux-I (1971-2013) (Organisme de soutenance / degree-grantor)

École doctorale de mathématiques et informatique (Talence, Gironde ; 1991-....) (Ecole doctorale associée à la thèse / doctoral school)

Laboratoire bordelais de recherche en informatique (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : Les systèmes de calcul actuels sont généralement des grappes de machines composés de nombreux processeurs à l'architecture fortement hiérarchique. Leur exploitation constitue le défi majeur des implémentations de modèles de programmation tels MPI ou OpenMP. Une pratique courante consiste à mélanger ces deux modèles pour bénéficier des avantages de chacun. Cependant ces modèles n'ont pas été pensés pour fonctionner conjointement ce qui pose des problèmes de performances. Les travaux de cette thèse visent à assister le développeur dans la programmation d'application de type hybride. Il s'appuient sur une analyse de la hiérarchie architecturale du système de calcul pour dimensionner les ressources d'exécution (processus et threads). Plutôt qu'une approche hybride classique, créant un processus MPI multithreadé par noeud, nous évaluons de façon automatique des solutions alternatives, avec plusieurs processus multithreadés par noeud, mieux adaptées aux machines de calcul modernes.

Résumé / Abstract : Modern computing servers usually consist in clusters of computers with several multi-core CPUs featuring a highly hierarchical hardware design. The major challenge of the programming models implementations is to efficiently take benefit from these servers. Combining two type of models, like MPI and OpenMP, is a current trend to reach this point. However these programming models haven't been designed to work together and that leads to performance issues. In this thesis, we propose to assist the programmer who develop hybrid applications. We lean on an analysis of the computing system architecture in order to set the number of processes and threads. Rather than a classical hybrid approach, that is to say creating one multithreaded MPI process per node, we automatically evaluate alternative solutions, with several multithreaded processes per node, better fitted to modern computing systems.