Two-level checkpointing and verifications for linear task graphs
Checkpoint à deux niveaux et vérifications pour des graphes de tâches linéaires
Abstract
Fail-stop and silent errors are omnipresent on large-scale platforms. Efficient resilience techniques must accommodate both error sources. To cope with the double challenge, a two-level checkpointing and rollback recovery approach can be used, with additional verifications for silent error detection. 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 checkpointing and recovery overhead. Furthermore, recent detectors offer partial verification mechanisms that are less costly than the guaranteed ones but do not detect all silent errors. In this paper, we show how to combine all of these techniques for HPC applications whose dependency graph forms a linear chain. We present a sophisticated dynamic programming algorithm that returns the optimal solution in polynomial time. Simulation results demonstrate that the combined use of multi-level checkpointing and verifications leads to improved performance compared to the standard single-level checkpointing algorithm.
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 améliore la performance.
Origin | Files produced by the author(s) |
---|
Loading...