EN FR
EN FR


Section: Software

TAPENADE

Participants : Laurent Hascoët [correspondant] , Valérie Pascual.

tapenade is an Automatic Differentiation tool that transforms an original source program into a new source program that computes derivatives of the original program. Automatic Differentiation produces analytical derivatives, that are exact up to machine precision. The reverse mode of Automatic Differentiation is able to compute gradients at a cost which is independent from the number of input variables. tapenade accepts source programs written in Fortran 77, Fortran 90, or C.It provides differentiation in the following modes: tangent, multi-directional tangent, and reverse. Documentation is provided on the web site of the reserch team and as the INRIA technical report RT-0300. tapenade runs under Linux or Windows operating systems, and requires installation of Java jdk1.6 or upward.

See also the web page http://www-sop.inria.fr/tropics/ .

  • Version: v 3.6, september 2011

  • ACM: D.3.4 Compilers; G.1.0 Numerical algorithms; G.1.4 Automatic differentiation; I.1.2 Analysis of algorithms

  • AMS: 65K10; 68N20

  • APP: IDDN.FR.001.040038.000.S.P.2002.000.31235

  • Keywords: automatic differentiation, adjoint, gradient, optimisation, inverse problems, static analysis, data-flow analysis, compilation

  • Programming language: Java

tapenade implements the results of our research about models and static analyses for AD. tapenade is can be downloaded and installed on most architectures. Alternatively, it can be used as a web server. tapenade differentiates computer programs according to the model described in section 3.1 Higher-order derivatives can be obtained through repeated application of tangent AD on tangent and/or reverse AD.

tapenade performs sophisticated data-flow analysis, flow-sensitive and context-sensitive, on the complete source program to produce an efficient differentiated code. Analyses include Type-Checking, Read-Write analysis, and Pointer analysis. AD-specific analysis include:

  • Activity analysis: This detects variables whose derivative is either null or useless, to reduce the number of derivative instructions.

  • Adjoint Liveness analysis: This detects the source statements that are dead code for the computation of derivatives.

  • TBR analysis: In reverse mode, this reduces the set of source variables that need to be recovered.

tapenade is not open-source. Academic usage is free. Industrial or commercial usage require a paying license, as detailled on the team's web page. The software has been downloaded several hundred times, and the web tool served several thousands of true connections (not robots). The tapenade-users mailing list is over one hundred registered users.