Tolérance aux pannes et programmation par tâches pour les systèmes large échelle
| Auteur / Autrice : | Nicolas Ducarton |
| Direction : | Samuel Thibault, Thomas 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) |
Mots clés
Résumé
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.