Ingénieur / Tolérance aux pannes dans la bibliothèque de communications réseau NewMadeleine

The offer description be low is in French

Contract type : Fixed-term contract

Level of qualifications required : Graduate degree or equivalent

Fonction : Temporary scientific engineer

About the research centre or Inria department

Le centre Inria de l’université de Bordeaux est un des neuf centres d’Inria en France 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…

Context

NUMPEX est le programme et équipement prioritaire de recherche (PEPR) pour l'Exascale en France. Cette initiative nationale vise à faire progresser la recherche scientifique et technologique dans le domaine du calcul à grande échelle et de l'informatique exascale

Ce poste s'inscrit dans le cadre du projet Exa-Soft du programme Numpex.

Dans le cadre du calcul haute-performance, les machines sont désormais très hétérogènes, équipées d'accélérateurs tels que les GPU ou les FPGA. Ces différentes unités se programment avec des paradigmes
différents, et pour ajouter à la complexité, il faut gérer les transferts de données entre les unités, l'ordonnancement, et l'équilibrage de charge.

Pour tirer profit d'une telle plate-forme, l'équipe STORM a proposé le support d'exécution StarPU qui gère ces
problématiques de manière générique et indépendante de l'application. Pour des grappes de calcul -- plusieurs noeuds interconnectés par un réseau d'interconnexion -- StarPU confie l'exploitation du réseau à une bibliothèque de communication qui implémente l'interface MPI, d'utilisation standard en HPC.

Par ailleurs, l'équipe TADAAM développe la bibliothèque de communication NewMadeleine, dont l'originalité est d'appliquer une stratégie d'optimisation à la volée sur les flux de communications issus des différents threads, en
assurant une progression asynchrone en tâche de fond. Elle repose essentiellement sur le principe de programmation événementielle et de messages actifs, ce qui permet le déroulement des communications sans intervention de l'application.

Les besoins de StarPU en terme de communications ne sont pas les mêmes que ceux d'une application MPI classique, notamment en matière d'irrégularité, de réactivité, de multi-threading, de nombre de requêtes actives simultanément, alors qu'ils correspondent parfaitement au cahier des charges de NewMadeleine. Un portage se
StarPU sur l'interface native de NewMadeleine a été réalisé pour en exploiter au mieux les propriétés de progression, de passage à l'échelle, ainsi qu'une intégration spécifique des opérations collectives.

Sur les supercalculateurs, le temps moyen entre pannes (MTBF) est typiquement de moins d'un jour. Les applications qui tournent à grande échelle doivent donc prendre en compte l'éventualité de fautes ou la
perte d'un noeud. Les stratégies classiques pour gérer la perte d'un noeud est le checkpoint, qui est désormais disponible dans StarPU. Cependant, la gestion de la perte d'un noeud n'est pas encore supportée dans NewMadeleine.



Assignment

L'objectif de ce poste d'ingénieur est d'ajouter le support de la tolérance aux pannes dans la bibliothèque de communication NewMadeleine. Concrètement, il s'agira d'implémenter dans NewMadeleine la norme ULFM.

 

Main activities

Concrètement, les activités à mener seront les suivantes:

  • Détection des fautes : il s'agira dans un premier temps d'ajouter une vraie détection des fautes dans les drivers réseau de NewMadeleine. Dans l'actuelle, cette détection est partielle, et prend souvent la forme d'un abandon plutôt que d'une remontée complète de la situation d'erreur.
  • État dégradé : après avoir détecté les fautes, il faudra mettre en place les mécanismes nécessaires pour que NewMadeleine puisse continuer à fonctionner correctement sans utiliser les liens fautifs. Il s'agit essentiellement d'adapter les stratégies de polling et d'adapter les conditions de soumission de nouvelles requêtes.
  • Remontées des fautes : ensuite, il sera nécessaire de remonter à l'utilisateur les situations d'erreur, en implémentant les codes d'erreurs et les nouvelles fonctions proposées par ULFM.
  • Récupération : enfin, pour récupérer totalement après une faute, il faut être capable de lancer de nouveaux processus et de les connecter à la session courante au travers de l'appel MPI MPI_Comm_spawn. Cette
    fonction n'est actuellement pas implémentée dans NewMadeleine. Il sera donc nécessaire d'en proposer une implémentation.
  • Tests avec StarPU : une fois que ces mécanismes seront en place, les tests se feront avec le cas d'usage envisagé dans Exa-Soft, à savoir au travers du runtime StarPU.

Skills

Les développements à réaliser se feront dans la bibliothèque NewMadeleine disponible en open source et se font en langage C. Il serait souhaitable qu'ils soient réalisés par une personne à l'aise en programmation réseau et système.

 

 

Benefits package

  • 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 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)
  • Accès à la formation professionnelle
  • Sécurité sociale

Remuneration

Le salaire varie entre 2692€ et 3085€ brut, en fonction des qualifications et de l'expérience professionnelle.