Data-Flow reversal and Garbage Collection

Autor: Hascoet, Laurent
Přispěvatelé: Transformations et outils informatiques pour le calcul scientifique (Ecuador), Inria Sophia Antipolis - Méditerranée (CRISAM), Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria), Inria Sophia Antipolis - Méditerranée
Jazyk: angličtina
Rok vydání: 2021
Předmět:
Zdroj: [Research Report] RR-9416, Inria Sophia Antipolis-Méditerranée. 2021, pp.18
Popis: 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.
Databáze: OpenAIRE