Data Flow Algorithms in the TAPENADE tool for Automatic Differentiation
Mauricio Araya-Polo
Laurent Hascoët
(INRIA, BP93, 06902 Sophia-Antipolis, France)
Proceedings of the ECCOMAS conference, Jyvaskyla, Finland, july 2004 (19 pages)
Abstract:
Automatic Differentiation (AD) is a program transformation that yields derivatives.
Building efficient derivative programs requires complex and specific
static analysis algorithms to reduce run time and memory usage.
Focusing on the reverse mode of AD,
which computes adjoint programs,
we specify jointly the central static analyses that are required to
generate an efficient adjoint code. We use a set-based formalization from
classical data-flow analysis to specify Adjoint Liveness,
Adjoint Write, and To Be Recorded analyses,
and their mutual influences. These specifications are derived formally from
the classical rules of Read-Write analysis.
We also show how the notion of Dependence Graph, used in the parallelization
domain, can be helpful to build better differentiated programs.
We give illustrations on examples taken from real numerical programs, that
we differentiate with our AD tool TAPENADE, which implements these
analyses.
Keywords:
Automatic Differentiation, Adjoint code, Adjoint algorithm,
Data-flow analysis, Dependence Graph
Full text (pdf)
@inproceedings{ArayaHascoet04,
author = {Araya-Polo, M. and Hasco\"et, L.},
title = {Data Flow Algorithms in the Tapenade tool for Automatic Differentiation},
booktitle = {Proceedings of 4$^{th}$ European Congress
on Computational Methods, ECCOMAS'2004, Jyvaskyla, Finland},
year = 2004
}