TAPENADE: a tool for Automatic Differentiation of programs
Laurent Hascoët
(INRIA, BP93, 06902 Sophia-Antipolis, France)
Proceedings of the ECCOMAS conference, Jyvaskyla, Finland, july 2004 (14 pages)
Abstract:
We present TAPENADE, a tool for Automatic Differentiation (AD).
AD transforms a program that computes or simulates a mathematical vector function
into a new program that computes derivatives of this function.
Specifically, TAPENADE can produce tangent programs
that compute directional derivatives, and adjoint programs
that compute gradients.
Gradients and Adjoints are probably the most promising derivatives,
as they are required in optimization. Therefore, they receive a particular
attention and development effort in TAPENADE.
This paper presents the AD principles
behind TAPENADE, and shows how they are reflected in
TAPENADE's differentiation model, internal algorithms and output.
We show the program analysis techniques
that make AD-generated tangents or adjoints perform comparably to
good hand-written tangents or adjoints, at a cheaper development cost.
TAPENADE is available at no cost, either as a server
on our web site http://www-sop.inria.fr/tropics, or
downloaded locally and called from the command line or from a makefile.
Keywords:
Automatic Differentiation, Adjoint code, Adjoint algorithm, Gradient, Optimization
Full text (pdf)
@inproceedings{Hascoet04e,
author = {Hasco\"et, L.},
title = {TAPENADE: a tool for Automatic Differentiation of programs},
booktitle = {Proceedings of 4$^{th}$ European Congress
on Computational Methods, ECCOMAS'2004, Jyvaskyla, Finland},
year = 2004
}