Section: New Software and Platforms


Keywords: Static analysis - Optimization - Compilation - Gradients

Scientific Description: Tapenade implements the results of our research about models and static analyses for AD. Tapenade can be downloaded and installed on most architectures. Alternatively, it can be used as a web server. Higher-order derivatives can be obtained through repeated application.

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 analyses include:

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

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

TBR analysis: In adjoint-mode AD, reduces the set of source variables that need to be recovered.

Functional Description: Tapenade is an Algorithmic Differentiation tool that transforms an original program into a new program that computes derivatives of the original program. Algorithmic Differentiation produces analytical derivatives, that are exact up to machine precision. Adjoint-mode AD can compute gradients at a cost which is independent from the number of input variables. Tapenade accepts source programs written in Fortran77, Fortran90, or C. It provides differentiation in the following modes: tangent, vector tangent, adjoint, and vector adjoint.

News Of The Year: - Continued development of multi-language capacity: AD of codes mixing Fortran and C - Continued front-end for C++ based on Clang - Experimental support for building Abs-Normal Form tangent of non-smooth codes