Sauvegarde et redémarrage

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Sommaire

Description

Alors que les défaillances matérielles et logicielles sont relativement peu fréquentes sur un ordinateur personnel, elles deviennent beaucoup plus fréquents lorsque le calcul implique un grand nombre de processeurs, de barrettes de mémoire vive, de disques durs et d'une architecture réseau compliquée. La sauvegarde et le redémarrage (checkpoint-restart) d'applications devient alors une étape cruciale de tout calcul d'envergure sur un superordinateur. En bref, si votre tâche requiert un superordinateur, il est probable qu'elle requiert aussi une stratégie de sauvegarde-redémarrage afin d'éviter le gaspillage de ressources.

Outre pour se protéger des défaillances logicielles et matérielles, l'utilisation d'une stratégie de sauvegarde-redémarrage permet d'exécuter une tâche d'une durée virtuellement infinie. En effet, alors que, pour des raisons techniques et politiques, tous les superordinateurs de Calcul Québec imposent des limites sur la durée d'une tâche, rien ne vous empêche de resoumettre une tâche à partir d'un point de sauvegarde. Une tâche optimalement construite pourrait ainsi se resoumettre elle-même à la fin de son temps alloué et s'exécuter indéfiniment.

Règles de base

Pour déterminer comment réaliser vos sauvegardes, vous voudrez d'abord estimer combien de temps requiert l'écriture d'un point de sauvegarde. Idéalement, vous voudrez vous assurer que le temps requis pour un point de sauvegarde soit négligeable par rapport au temps de calcul. Vous voudrez cependant aussi vous assurez que vous sauvegardez suffisamment fréquemment afin d'éviter de perdre tout le calcul en cas de défaillance.

Durée de l'écriture d'un point de sauvegarde

Sur un système performant tel que ceux proposés par Calcul Québec, l'écriture d'un point de sauvegarde ne devrait jamais prendre plus de quelques minutes. En effet, les supercalculateurs de Calcul Québec offrent tous des systèmes de fichiers parallèles capables d'écrire et de lire des données à des débits de plusieurs Go/s. Même avec une tâche gourmande en mémoire, utilisant quelques dizaines de Go par nœud de calcul, on devrait ainsi s'attendre à un temps de sauvegarde de l'ordre de quelques minutes. Si ce n'est pas le cas pour votre application, celle-ci fait vraisemblablement un mauvais usage du système de fichiers. Un analyste pourra alors vous aider à trouver le problème et à optimiser vos performances.

Fréquence de l'écriture d'un point de sauvegarde

En tenant pour acquis que l'écriture d'un point de sauvegarde ne devrait pas nécessiter plus de quelques minutes, vous devriez viser à effectuer une sauvegarde à toutes les quelques heures, voire à toutes les heures si la durée de la sauvegarde se compte en secondes.

Redémarrage

Il est important de sauvegarder, mais il faut aussi pouvoir redémarrer à partir du point de sauvegarde. Pour ce faire, vous devrez écrire votre script de soumission de telle sorte qu'il puisse détecter la présence ou l'absence d'un point de sauvegarde et lancer le calcul à partir de zéro ou à partir du point de sauvegarde selon le cas.

Comment faire ?

Il existe trois méthodes principales pour utiliser une stratégie de sauvegarde-redémarrage.

Support applicatif

L'approche la plus simple est d'abord de vérifier si l'application que vous utilisez supporte les sauvegardes et le redémarrage à partir de points de sauvegarde. C'est le cas d'un grand nombre d'applications. Si c'est le cas de votre application, il faudra d'abord déterminer si l'écriture de points de sauvegarde se fait de façon efficace (voir la règle sur la durée ci-dessus) ou non.

Support transparent

Différentes bibliothèques offrent le support transparent de points de sauvegarde-redémarrage. C'est le cas notamment de BLCR (Berkeley Lab Checkpoint/Restart), qui est installé sur Colosse. Ces bibliothèques permettent, modulo certaines limitations, d'écrire la totalité de la mémoire de l'application sur disque et de redémarrer l'application à partir du fichier de sauvegarde à un temps ultérieur.

Solution maison

Si vous écrivez votre application vous-même, la solution la plus performante (mais aussi celle qui demande le plus d'investissement de temps) sera certainement d'écrire vous-même les routines de sauvegarde et de redémarrage. La complexité de la tâche dépendra de la complexité de vos données en mémoire, mais vous aurez le plein contrôle sur les données que vous écrivez et celles que vous n'écrivez pas.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager