Contexte et atouts du poste
Contexte :
Le besoin en puissance de calcul concerne de plus en plus de domaines tels que la biologie, la météorologie, l’astrophysique … Les applications sont exécutées sur des supercalculateurs avec de grandes capacités de calcul. Le PEPR Numérique pour l’exascale (NumPEx) s’inscrit dans ce contexte. Il a pour but de fournir les briques logicielles nécessaires pour l’exascale. Il est divisé en 5 projets ciblés (appelés PC), allant des méthodes mathématiques au traitement des données en passant par les logiciels. Cette fiche de poste s’inscrit dans le cadre du 2e PC : Exa-SofT dont le but et de fournir la pile logicielle nécessaire au bon fonctionnement des applications.
Afin d’atteindre ces performances de calcul, les supercalculateurs contiennent de plus en plus d’unités de calcul parfois hétérogènes. Par exemple, Frontier, classé numéro 1 au Top500 contient plus de 8 millions de coeurs. Avec autant de composants, la probabilité qu’une défaillance se produise est de plus en plus élevée. Il existe plusieurs techniques pour tolérer les fautes, certaines au niveaux de l’application [1] avec pour avantage la fine connaissance de l’application et de ses besoins, d’autres au niveau du système [2] qui évitent au programmeur d’ajouter les mécanismes de tolérance aux fautes à l’application. Ces techniques utilisent typiquement le principe de checkpoint/restart: régulièrement pendant l’exécution de l’application, l’état de l’application est sauvegardé (checkpoint), pour pouvoir être restauré en cas de panne (restart).
L’autre obstacle introduit par les supercalculateurs est la difficulté à programmer. En effet, devoir gérer des millions de ressources hétérogènes, avec ce que cela implique en terme de programmation, de gestion de la mémoire et des ressources, peut devenir très complexe. Afin d’abstraire l’architecture, les supports d’exécution à base de graphes de tâches peuvent être utilisés. L’idée est de représenter l’application sous forme de graphe de tâches guidé par les dépendances des données. Une fois le graphe exprimé, le support d’exécution s’occupe des transferts des données nécessaires à l’application. Ainsi l’utilisateur n’a plus à gérer cette difficulté. StarPU [3], développé à Bordeaux dans l’équipe STORM, fait partie des supports d’exécution basés sur les graphes de tâches.
Combiner la tolérance aux fautes et la représentation en graphe de tâches a plusieurs avantages. Tout d’abord, la connaissance des dépendances implique la connaissance des données nécessaires au restart, rendant la taille des checkpoints plus raisonnable. Ensuite, les messages à sauvegarder pour éviter un redémarrage global ou un effet domino peut aussi être simplifié grâce au graphes de tâches. Des travaux ont déjà été effectués dans le contexte de la tolérance aux fautes dans StarPU [4]. Ces travaux n’ont cependant pas encore été complètement intégrés dans StarPU lui-même: la sauvegarde du log de messages a été implémentée dans un prototype reprenant le fonctionnement de base de StarPU-MPI.
Références :
[1] G. Bosilca, R. Delmas, J. Dongarra and J. Langou : Algorithm-based fault tolerance applied to high performance computing. Journal of Parallel and Distributed Computing. 2009.
[2] Elnozahy, E. N. (Mootaz) and Alvisi, Lorenzo and Wang, Yi-Min and Johnson, David B: A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv. 2002.
[3] C. Augonnet, S. Thibault, R. Namyst, and P-A. Wacrenier
StarPU: A Unified Platform for Task Scheduling on Heterogeneous Multicore Architectures. CCPE - Concurrency and Computation: Practice and Experience, Special Issue: Euro-Par 2009, 23:187-198, February 2011
[4] Romain Lion, Samuel Thibault: From tasks graphs to asynchronous distributed checkpointing with local restart. FTXS@SC 2020
Mission confiée
Missions :
Avec l'aide de Samuel Thibault et Amina Guermouche, la personne recrutée devra intégrer les mécanismes de tolérance aux fautes dans StarPU.
Principales activités
Le but de ce poste est :
1- Intégrer la tolérance aux fautes dans StarPU. Cette intégration comprendra l’intégration de la sauvegarde d’un log de messages, de la détection de fautes, et la mise en place du restart.
2- Effectuer une campagne de tests sur plusieurs applications afin de pouvoir tester les performances et l’impact du checkpoint.
Compétences
Compétences techniques et niveau requis :
1. Programmation C
2. Programmation parallèle, MPI
3. Linux, bash
Langues : Anglais
Avantages
4. Restauration subventionnée
5. Transports publics remboursés partiellement
6. 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)
7. Possibilité de télétravail et aménagement du temps de travail
8. Équipements professionnels à disposition (visioconférence, prêts de matériels informatiques, etc.)
9. Prestations sociales, culturelles et sportives (Association de gestion des œuvres sociales d'Inria)
10. Accès à la formation professionnelle
11. Sécurité sociale
Rémunération
Le salaire moyen se situera entre 2692€ et 2765€ brut en fonction de l'expérience.
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.