2022-04924 - Ingénieur H/F pour la construction automatique de mini-applications et autoréglage des paramètres MCA de la bibliothèque Open MPI

Type de contrat : CDD

Niveau de diplôme exigé : Bac + 5 ou équivalent

Fonction : Ingénieur scientifique contractuel

Niveau d'expérience souhaité : Jeune diplômé

A propos du centre ou de la direction fonctionnelle

Le centre Inria Bordeaux - Sud-Ouest est un des neuf centres d’Inria et compte une vingtaine d’équipes de recherche. Le centre Inria est un acteur majeur et reconnu dans le domaine des sciences numériques. Il est au cœur d'un riche écosystème de R&D et d’innovation : PME fortement innovantes, grands groupes industriels, pôles de compétitivité, acteurs de la recherche et de l’enseignement supérieur, laboratoires d'excellence, institut de recherche technologique…

Contexte et atouts du poste

Dans le cadre d’un partenariat

  • avec Atos/BULL à Grenoble
  • Et Inria à Bordeaux (équipe TADaaM)

L’ objectif du poste est de déveloper un outil pour régler automatiquement les paramètres de lancement d'une application de calcul haute performance écrite en MPI. 

Sur les supercalculateurs utilisés en calcul haute performance, les applications scientifiques reposent, pour la plupart, sur le standard MPI afin de faire communiquer entre eux les processus applicatifs déployés. Il existe plusieurs implémentations de ce standard, sous forme de bibliothèques de communication. Les performances des communications de ces bibliothèques dépendent du matériel sous-jacent et sont variables selon le type des communications (point à point, collectives, bloquantes ou non, etc.), selon la topologie physique des nœuds de calcul et le schéma de communication des processus déployés dessus, selon l’algorithme employé pour traiter cette communication au sein de la bibliothèque, selon la taille des messages à échanger, etc…

Une des principales bibliothèques développées par des partenaires académiques, ainsi que des partenaires industriels tels qu’Atos, se nomme Open MPI. L’architecture logicielle de cette bibliothèque utilise un ensemble de paramètres de configuration appelés paramètres MCA permettant au moment du déploiement d’une application de contrôler finement le comportement de la bibliothèque afin d’optimiser ses communications. Néanmoins, parvenir à déterminer un ensemble de valeurs pour ces paramètres pour une application donnée afin d’en maximiser les performances est un problème complexe. Une approche dite de force brute consistant à tester avec de multiples exécutions de l’application toutes les valeurs possibles de ces paramètres n’est pas judicieux, compte-tenu du temps requis pour une telle démarche. Il est donc nécessaire de trouver des techniques de détermination de ces paramètres plus efficaces. 

Dans le cadre du plan de relance, la société ATOS et l'équipe-projet Inria-TADaaM proposent donc de mettre en place une collaboration visant l'objectif suivant :

  • Sur l'horizon d'environ 2 ans, l’objectif est de passer d'un prototype issu de la recherche académique à un démonstrateur, en le rendant plus robuste et capable de s’appliquer sur des applications proposées lors des différents appels d’offre. Il s’agira également pour Atos d’intégrer ce démonstrateur dans son propre outil d’optimisation des communications MPI et nommé ACCO.

Des déplacements réguliers sont prévus pour ce poste : le poste sera à 20% à l'Inria Bordeaux sur la campus de Talence et à 80% chez ATOS à Echirolles (Isère).

Mission confiée

Organisation du travail

La collaboration débutera en octobre 2022 et durera 2 ans.

L’ingénieur junior travaillera à 80% de son temps dans les locaux d’ATOS à Grenoble, sis au 1 rue de Provence, 38130 Échirolles et pour les 20% restants dans le centre de recherche Inria Bordeaux Sud-Ouest, situé au 200 Avenue de la Vieille Tour 33405 TALENCE Cedex.

Etapes principales : Prise en main de la bibliothèque Open MPI, prise en main de l’outil d’optimisation ACCO, prise en main de l’outil PARCOACH développé par l’équipe-projet Inria-Storm, intégration des travaux de Richard Sartori, doctorant CIFRE avec ATOS (M. Lemarinier).

Les participants à la collaboration feront des réunions régulières (1 fois toutes les deux semaines).

Intervenants

La collaboration se fera entre l’équipe TADaaM du centre Inria Bordeaux Sud-Ouest et Atos.

Personnes impliquées côté Inria :

  • Emmanuel Jeannot
  • Guillaume Mercier

Personnes impliquées côté ATOS :

  • Pierre Lemarinier
  • Guillaume Papauré 

 Travaux à réaliser

Le sujet  proposé porte sur la détermination et l’optimisation automatique des paramètres MCA d’Open MPI permettant de maximiser les performances des communications d’une application scientifique cible. Un outil nommé ACCO et développé par Atos permet déjà de déterminer quelques paramètres spécifiques aux communications collectives, soit par une approche de type force brute, soit par des techniques d’optimisation dite boîte noire. Cet outil repose des évaluations successives de valeurs choisies pour ces paramètres sur l’exécution complète de l’application cible, ce qui le limite à des applications à exécution rapide de type benchmark ou mini-application. L’objectif est ici de développer des techniques permettant l’obtention de ces paramètres sur des applications scientifiques d’envergure plus conséquente. Dans le cadre d'une recherche scientifique commune (une thèse CIFRE), il a ainsi été proposé une approche dite de « squelettisation » consistant à extraire les communications d’une application cible pour en créer une mini-application représentative de l’application originelle.

Dans un premier temps

  • L’ingénieur junior encadré par Inria consolidera la « squelettisation » proposée à la compilation et se reposant sur PARCOACH, un code développé par l’équipe-projet Inria-Storm permettant l’analyse de codes MPI. Il s’agira de rendre robuste cette approche et d’optimiser l’exécution de cette squelettisation. Il mènera une activité de développement visant à monter en TRL les différents prototypes développées dans le cadre la thèse CIFRE.  D’autres part, il mènera une phase de tests intensifs permettant d’évaluer la robustesse de l’outil.
  • L’ingénieur junior encadré par ATOS mettra en œuvre le nouvel outil sur les applications d’ATOS afin d’évaluer l’outil de squelettisation obtenu sur des exemples de codes applicatifs réels proposés par ATOS. La robustesse de cette solution sera analysée, et une campagne d’optimisation des paramètres MCA sera réalisée sur les squelettes obtenus afin d’étudier l’apport des paramètres ainsi déterminés sur les applications d’origine.

En fonction de l’avancement des travaux d’ingénierie, d’autres pistes pourront être poursuivies avec les étapes suivantes de recherche : 

  • Au lieu de se reposer sur une détermination des paramètres MCA par une approche boîte noire, des méthodes de classification des applications pourraient être envisagées. Il s’agira d’identifier des classes d’applications possédant pour chaque classe un ensemble de valeurs de paramètres MCA déterminé, puis de proposer des techniques de catégorisation des applications selon les classes identifiées.
  • La détermination des paramètres MCA n’est pas le seul levier pour l’amélioration des performances des communications de la bibliothèque Open MPI. Le placement des processus sur une machine cible a également un impact sur ces performances. Il s’agira donc de proposer des techniques de détermination de placement visant à améliorer les performances d’une application cible.

 

Les développements liés à la squelettisation feront l’objet d’un module du logiciel PARCOACH. Certains développements propres aux applications d’Atos pourront faire l’objet d’une déclinaison pour créer un logiciel spécifique.

Livrable : Un démonstrateur des capacités de l’outil pourra être faite à ATOS, avec une présentation des résultats obtenus par l’outil sur les codes applicatifs d’ATOS.

Principales activités

Principales activés  :

  • Consolider les prototypes déjà réalisées
  • Proposer des suites de tests et évaluer la robustesse des développements
  • Réaliser la documentation et les démonstrateurs

 

Compétences

Compétences techniques et niveau requis :

  • très bon niveau en langage C/C++,
  • très bon niveau en système de type Unix,
  • être famillier des outils de travail collaboratif (ssh, git, etc.),
  • connaissance en compilation et LLVM serait appréciée,
  • bonne connaissance des infrastructures de calcul haute performance, en particulier de MPI
  • connaissance des outils de développement poussés (Valgrind, etc.),
  • connaissance de Python

Langues : anglais (lu écrit parlé)

Compétences relationnelles :

  • aimer le travail en équipe,
  • savoir communiquer sur ses résultats et ses avancées,
  • être à l'écoute des différentes idées.

Compétences additionnelles appréciées :

  • être capable de commencer un poste en télétravail.
  • être capable de travailler avec des personnes sur différents sites.

Avantages

  • Restauration subventionnée
  • Transports publics remboursés partiellement
  • Congés: 7 semaines de congés annuels + 10 jours de RTT (base temps plein) + possibilité d'autorisations d'absence exceptionnelle (ex : enfants malades, déménagement)
  • Possibilité de télétravail partiel et aménagement du temps de travail
  • Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
  • Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)

Rémunération

CDD de 24 mois

Rémunération mensuelle brute fixée selon diplôme et expériences professionnelles : entre 2562 euros et 3846 euros