Two-level checkpointing and partial verifications for linear task graphs
Checkpoint à deux niveaux et vérifications partielles pour des graphes de tâches linéaires
Résumé
Fail-stop and silent errors are unavoidable on large-scale platforms. Efficient resilience
techniques must accommodate both error sources. A traditional checkpointing and rollback
recovery approach can be used, with added verifications to detect silent errors. A fail-stop
error leads to the loss of the whole memory content, hence the obligation to checkpoint on a stable
storage (e.g., an external disk). On the contrary, it is possible
to use in-memory checkpoints for silent errors, which provide a much smaller checkpoint and recovery overhead.
Furthermore, recent detectors offer partial verification mechanisms,
which are less costly than guaranteed verifications but do not detect all silent errors.
In this paper, we show how to combine all these techniques for HPC applications whose dependence graph
is a chain of tasks, and provide a sophisticated dynamic programming algorithm returning the optimal
solution in polynomial time. Simulations demonstrate that the combined use of multi-level checkpointing
and partial verifications further improves performance.
Les erreurs fatales et silencieuses ne peuvent plus être ignorées sur des plates-formes à
grande échelle. Des techniques de résilience efficaces doivent accommoder les deux types d'erreurs.
Une approche traditionnelle de checkpoint et points de reprise peut être utilisée, en rajoutant
des vérifications afin de détecter les erreurs silencieuses. Une erreur fatale entraîne la perte
de tout le contenu mémoire, d'où l'obligation de faire une sauvegarde sur un support fiable
(typiquement un disque). Par contre, il est possible de se satisfaire de checkpoints en mémoire
pour les erreurs silencieuses, ce qui donne des surcoûts bien plus faibles. De plus, les détecteurs récents
offrent des mécanismes de vérification partielle, qui sont moins coûteux que les vérifications garanties,
mais qui ne détectent pas toutes les erreurs silencieuses. Nous montrons comment combiner
toutes ces techniques pour des applications HPC dont le graphe de dépendances est une chaîne
de tâches, et nous donnons un algorithme de programmation dynamique sophistiqué qui renvoie
la solution optimale en temps polynomial. Des simulations démontrent que l'utilisation combinée
de checkpoint à deux niveaux et de vérifications partielles améliore la performance.
Origine | Fichiers produits par l'(les) auteur(s) |
---|