On the correct application of AD checkpointing to adjoint MPI-parallel programs

Résumé : Le ``Checkpointing'' est une technique classique pour atténuer le surcoût de la différentiation algorithmique adjointe (DA). Dans le contexte de la DA par transformation de source avec l'approche Store-All, le checkpointing réduit le pic de consommation de mémoire de l'adjoint au prix d'exécutions dupliquées de morceaux de code sélectionnés. Le checkpointing est vital pour les codes de temps d'exécution long, ce qui est le cas de la plupart des applications parallèles MPI. Cependant, la présence des communications MPI restreint sérieusement l'application du checkpointing. Dans la plupart des tentatives pour appliquer le checkpointing aux codes MPI adjoints (l'approche ``populaire''), certaines restrictions s'appliquent sur la forme des communications qui ont lieu dans le morceau de code apres le checkpointing. Dans plusieurs travaux, ces restrictions ne sont pas explicites, et une application qui ne respecte pas ces restrictions peut produire des résultats erronés. Nous proposons des techniques pour appliquer le checkpointing aux codes MPI adjoints, qui ou bien ne supposent pas ces restrictions, ou bien les explicitent de telle façon que les utilisateurs finaux peuvent vérifier leur applicabilité. Ces techniques utilisent à la fois l'adaptation des mécanismes de snapshot de checkpoining et sur la modification de comportement des appels de communications. Une technique est fondée sur l'enregistrement des valeurs reçues, de telle façon que les communications n'ont pas besoin d'être répétées. Malgré que cette technique lève complètement les restrictions sur le checkpointing des codes MPI, l'enregistrement des messages la rend plus coûteuse que l'approche populaire. Cependant, nous pouvons raffiner cette technique pour remplacer l'enregistrement des valeurs par la duplication des communications à chaque fois que c'est possible, de telle façon que la technique raffinée englobe maintenant l'approche populaire. Nous fournissons des éléments de preuve de correction de notre technique raffinée, à savoir qu'elle préserve la sémantique du code adjoint et qu'elle n'introduit pas de deadlock.
Type de document :
Rapport
[Research Report] RR-8864, Inria Sophia Antipolis. 2016
Liste complète des métadonnées

Littérature citée [8 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-01277449
Contributeur : Ala Taftaf <>
Soumis le : lundi 22 février 2016 - 15:00:59
Dernière modification le : jeudi 11 janvier 2018 - 16:48:54
Document(s) archivé(s) le : dimanche 13 novembre 2016 - 00:48:06

Fichier

RR-8864.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-01277449, version 1

Collections

Citation

Laurent Hascoet, Ala Taftaf. On the correct application of AD checkpointing to adjoint MPI-parallel programs. [Research Report] RR-8864, Inria Sophia Antipolis. 2016. 〈hal-01277449〉

Partager

Métriques

Consultations de la notice

400

Téléchargements de fichiers

217