Sujet de stage 2018 – Optimisation des codes MPI à l’aide de communications asynchrones

Contact

Responsable : Emmanuelle Saillard
Téléphone : 05.24.57.41.24
Courriel :
emmanuelle.saillard@inria.fr

Ce stage est en collaboration avec le CEA.

Présentation du sujet

Le calcul haute performance (HPC) intervient dans de nombreux domaines pour aider à résoudre les grands problèmes scientifiques d’aujourd’hui en un temps raisonnable.
Cependant, obtenir des codes HPC efficaces reste un vrai challenge. La complexité croissante des machines entraine un vrai besoin au niveau des outils et méthodes d’optimisation pour assurer le passage à l’échelle et la performance des applications.
Le modèle MPI (Message Passing Interface) est aujourd’hui le modèle le plus répandu dans les applications HPC. Ce modèle met en jeu des processus qui exécutent des parties du code indépendamment les uns des autres et s’échangent des informations, principalement via des communications dites collectives (communication entre tous les processus) ou point-à-points (communication entre deux processus).
L’optimisation des codes passe souvent par l’optimisation de ces communications.
Celles-ci sont généralement optimisées en utilisant des primitives non bloquantes, de la forme “init(); … wait();” où “init” initialise l’opération et “wait” vérifie la complétion de celle-ci.  Cette optimisation est souvent faite à la main par le développeur, directement dans l’application.

L’objectif de ce stage est d’évaluer le gain de temps possible avec l’utilisation des communications non bloquantes dans des applications MPI.
On privilégiera une analyse à la compilation pour trouver la meilleure utilisation des opérations non bloquantes dans une application (recouvrement maximal), tout en respectant les dépendances de données. En effet, le compilateur est en mesure de nous fournir des informations sur le code comme la ligne où se trouve une opération ou les relations de dépendances entre variables.

L’analyse sera développée dans le compilateur LLVM sous forme d’une passe [1] et se focalisera dans un premier temps sur les communications collectives et sera étendue ensuite aux communications point-à-points.

 

Mot-clés : Calcul haute performance, LLVM, MPI

Commentaires

Des connaissances en compilation sont souhaitables pour aborder le sujet dans de bonnes conditions.

Références

Équipe Storm: https://team.inria.fr/storm

[1] https ://llvm.org/docs/WritingAnLLVMPass.html

Comments are closed