Réplication de données et répartition de charge pour la tolérance aux pannes dans un support d'exécution distribué à base de tâches

par Romain Lion

Projet de thèse en Informatique

Sous la direction de Samuel Thibault et de Olivier Aumage.

Thèses en préparation à Bordeaux , dans le cadre de École doctorale de mathématiques et informatique (Talence, Gironde) , en partenariat avec Laboratoire bordelais de recherche en informatique (laboratoire) et de Supports et Algorithmes pour les applications numériques hautes performances (SATANAS) (equipe de recherche) depuis le 26-10-2018 .


  • Résumé

    Le projet européen exa2pro rassemble différent instituts de recherche et partenaires industriels pour améliorer la programambilité des futures machines de calcul exascale. À ces échelles, les pannes matérielles sont très courantes, ce qui amène la perte de nœuds entiers de calcul, et donc le besoin de techniques de tolérance aux pannes. Cependant, à ces échelles, les techniques de tolérance aux pannes classiques telles que le checkpoint-restart montrent elles-mêmes leurs limites. Les modèles de programmation à base de tâches fournissent cependant des informations riches sur le flot de calcul et ses relations avec les données, ce qui peut être utilisé pour repenser ces teechniques avec une réplication et un redémarrage sélectif à grain fin, d'après le graphe des tâches. Par ailleurs, cela devrait permettre à l'exécution de continuer alors que les tâches et données perdues sont récupérées d'une manière optimisée à partir des checkpoints. La perte inattendue d'un nœud de calcul entraîne une disruption dans l'équilibre de la charge de calcul, à cause de la perte du nœud lui-même, mais aussi à cause du temps de calcul perdu dans la récupération des données. Cela impose donc une redistribution dynamique appropriée de la charge de calcul du nœud en échec et des dépences de récupération, sur l'ensemble du système pour éviter les déséquilibres tout en limitant les redistributions de donnéeS. L'équipe Inria STORM a une longue expérience sur les supports d'exécution en général, et sur les systèmes d'exécution à base de tâches en particulier, notamment à travers les recherches liées au système d'exécution StarPU. StarPU supporte actuellement une exécution distributée qui passe à l'échelle à l'aide du standard de communication MPI, et des travaux sont en cours pour ajouter un équilibrage dynamique selon les variations de charge dynamiques de l'application. Les buts de cette thèse sont ainsi les suivants: - Concevoir des stratégies de réplication dans le support d'exécution StarPU pour que la perte d'un nœud n'entraîne pas la perte de données et que le calcul puisse être repris efficacement sans impacter tous les autres nœuds de calcul, tout en minimisant la quantité de réplications en déterminant quelles données peuvent être reconstruites à partir d'autres données qui elles doivent être préservées. - Étendre le modèle de programmation à base de tâches et son modèle d'exécution pour permettre la détection d'erreurs, et des stratégies de reprise sans accroc, de manière à ce que le support d'exécution utilise les informations du graphe de tâches pour récupérer les données nécessaires pour les tâches restantes à partir des données qui ont été récpliquées, et redémarre les tâches dont l'instantiation a été perdue. - Améliorer les stratégies de répartition de charge pour compenser la perte de nœuds de calcul, tout en limitant le volume des redistributions de données. - Pour aller plus loin, explorer les relations et coopérations possibles entre les algorithmes d'ordonnancement et les méchanismes de réplication/reprise pour améliorer l'efficacité de la réplication, limitant ainsi l'impact des étapes de reprise.

  • Titre traduit

    Data replication and load-balancing for fault-tolerance in a distributed task-based runtime system


  • Résumé

    The Exa2pro European project gathers different research institutes and industrial partners to aim at enhancing programmability of the future exascale computing systems. At these scales, hardware failures are very common, leading to the sporadic loss of whole computation nodes, and to the need of fault tolerance techniques. However, at these scales, the classical fault tolerance techniques such as checkpoint-restarts even show their limitations themselves. Task-based programming models however provide rich information about the flow of computations and their relationship with respect to data, which can be used to revamp these techniques with fine-grain, selective replications and restarts according to the task graph. Moreover, this should allow to let execution continue while the lost tasks and data are being recovered in an optimized way from data checkpoints. The unexpected loss of a computation node entails a disruption in the balancing of the computation load, due to the loss of the node itself, but also due to the computation time lost in recovering from the data loss. This thus imposes careful dynamic redistribution of the workload of the failed node and recovery expenses over the system to avoid imbalances while limiting data redistributions. The Inria STORM team has a long experience on runtime systems in general, and on task-based runtime systems in particular, notably through research related to the StarPU runtime system. StarPU currently supports scalable distributed execution through the MPI communication standard, and work is currently conducted to add adaptive dynamic load balancing according to application load fluctuations. The goals of this PhD are thus the following ones: - Conceiving StarPU runtime system replication strategies so that the loss of a computation node does not entail loss of data and the computation can be efficiently resumed without impacting all other computation nodes, while minimizing the amount of replications by determining pieces of data that can be recomputed from data that must be preserved. - Extending the task-based programming model and its execution model to allow for failure detection, and for seamless restart strategies, so that the runtime uses the task graph information to recover the data required by remaining tasks from the data which was duplicated, and restart the tasks whose instantiation was lost. - Improving dynamic distributed load-balancing strategies to cope with the loss of computation nodes, while limit the volume of data redistribution. - Going further, by exploring possible relationships and cooperation between scheduling algorithms and the replication/restart mechanisms to increase the effectiveness of replication, while limiting the impact of restart steps.