Section: New Software and Platforms


Keywords: Static analysis - Optimization - Compilation - Gradients

Tapenade [10] is an Algorithmic Differentiation tool that transforms an original program into a new program that computes derivatives of the original program. Being an AD tool, Tapenade produces analytical derivatives exact up to machine precision, and in adjoint mode computes gradients at a cost independent of the number of input variables.

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 accepts source programs written in Fortran77, Fortran90, or C. It provides differentiation in the following modes: tangent, vector tangent, adjoint, and vector adjoint.

Tapenade performs sophisticated data-flow analysis, flow-sensitive and context-sensitive, on the complete source program to produce an efficient differentiated code. Analyses performed are Type-Checking, Read-Write analysis, Pointer analysis, and AD-specific analyses including Activity analysis, Adjoint Liveness analysis, and TBR analysis.