Programming language features, usage patterns, and the efficiency of generated adjoint code

Abstract : The computation of gradients via the reverse mode of algorithmic differentiation is a valuable technique in modeling many science and engineering applications. This technique is particularly efficient when implemented as a source transformation, as it may use static data-flow analysis. However, some features of the major programming languages are detrimental to the efficiency of the transformed source code. This paper provides an overview of the most common problem scenarios and estimates the cost overhead incurred by using the respective language feature or employing certain common patterns. An understanding of these topics is crucial for the efficiency or even feasibility of adjoint computations, particularly for large-scale numerical simulations e.g. in geosciences. While one cannot hope to cover all effects observable with a given programming language in a given run time environment, the paper aims at providing a reasonable guide for the users of C/C++ and Fortran source transformation tools for algorithmic differentiation.
Type de document :
Article dans une revue
Optimization Methods and Software, Taylor & Francis, 2016, 31, pp.885 - 903. 〈10.1080/10556788.2016.1146269〉
Liste complète des métadonnées

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

https://hal.inria.fr/hal-01413332
Contributeur : Laurent Hascoet <>
Soumis le : vendredi 9 décembre 2016 - 16:16:50
Dernière modification le : vendredi 12 janvier 2018 - 11:02:31

Fichier

adjointEff.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

Collections

Citation

Laurent Hascoët, Jean Utke. Programming language features, usage patterns, and the efficiency of generated adjoint code. Optimization Methods and Software, Taylor & Francis, 2016, 31, pp.885 - 903. 〈10.1080/10556788.2016.1146269〉. 〈hal-01413332〉

Partager

Métriques

Consultations de la notice

114

Téléchargements de fichiers

61