Data-Flow reversal and Garbage Collection
Renversement du flot de données et Garbage Collection
Résumé
Data-Flow reversal is at the heart of Source-Transformation reverse Algorithmic Differentiation (Reverse ST-AD), arguably the most efficient way to obtain gradients of numerical models. However, when the model implementation language uses Garbage Collection (GC), for instance in Java or Python, the notion of address that is needed for Data-Flow reversal disappears. Moreover, GC is asynchronous and does not appear explicitly in the source. We present an extension to the model of Reverse ST-AD suitable for a language with GC. We validate this approach on a Java implementation of a simple Navier-Stokes solver. We compare performance with existing AD tools ADOL-C and Tapenade on an equivalent implementation in C and Fortran.
Le renversement du flot de données est au centre du mode inverse de la Différentiation Algorithmique, qui est la manière la plus efficace d’obtenir le gradient d’un code numérique. Pourtant, quand le langage d’implémentation de ce code utilise le GC (Garbage Collection), par exemple en Java ou en Python, la notion d’adresse disparaît alors que cette notion est nécessaire aux techniques classiques de renversement du flot de données. De plus, le GC est asynchrone et ne correspond pas à une instruction explicite dans le code. Nous présentons une extension du mode inverse de la Différentiation Algorithmique qui le rend compatible avec le GC. Nous validons ce modèle étendu sur un solveur Navier-Stokes simple implémenté en Java. Nous comparons les performances avec celles d’outils de DA existants tels que ADOL-C et Tapenade, appliqués à des implémentations équivalentes du même solveur réécrit en C et Fortran.
Fichier principal
RR-9416.pdf (753.59 Ko)
Télécharger le fichier
DynMemProblem.pdf (14.97 Ko)
Télécharger le fichier
GCreversal.pdf (27.36 Ko)
Télécharger le fichier
logo-inria.png (275.12 Ko)
Télécharger le fichier
pagei.png (26.87 Ko)
Télécharger le fichier
rrpage1.png (47.58 Ko)
Télécharger le fichier
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Origine | Fichiers produits par l'(les) auteur(s) |
---|