Thèse en cours

Tolérance aux pannes et programmation par tâches pour les systèmes large échelle

FR  |  
EN
Auteur / Autrice : Nicolas Ducarton
Direction : Samuel ThibaultThomas Herault
Type : Projet de thèse
Discipline(s) : Informatique
Date : Inscription en doctorat le 15/04/2025
Etablissement(s) : Bordeaux
Ecole(s) doctorale(s) : École doctorale de mathématiques et informatique
Partenaire(s) de recherche : Laboratoire : LaBRI - Laboratoire Bordelais de Recherche en Informatique
Equipe de recherche : Supports et Algorithmes pour les applications numériques hautes performances (SATANAS)

Résumé

FR  |  
EN

Le besoin en puissance de calcul concerne de plus en plus de domaines tels que la biologie, la météorologie, l'astrophysique … Afin d'atteindre les 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](https://www.top500.org/lists/top500/2022/06/) 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 [ABFT] avec pour avantage la fine connaissance de l'application et de ses besoins, d'autres au niveau du système [CP-Restart] qui évitent au programmeur d'avoir à 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*). Un autre obstacle introduit par les supercalculateurs est la difficulté à programmer. 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], développé à Bordeaux dans l'équipe STORM, fait partie des supports d'exécution basés sur les graphes de tâches.