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
}