Section: Research Program
Algorithmic Differentiation
Participants : Laurent Hascoët, Valérie Pascual, Ala Taftaf.
-
Glossary
- algorithmic differentiation
(AD, aka Automatic Differentiation) Transformation of a program, that returns a new program that computes derivatives of the initial program, i.e. some combination of the partial derivatives of the program's outputs with respect to its inputs.
- adjoint
Mathematical manipulation of the Partial Differential Equations that define a problem, obtaining new differential equations that define the gradient of the original problem's solution.
- checkpointing
General trade-off technique, used in adjoint AD, that trades duplicate execution of a part of the program to save some memory space that was used to save intermediate results.
Algorithmic Differentiation (AD) differentiates
programs. The input of AD is
a source program
Any execution of
where each
which can be mechanically written as a sequence of instructions
In practice, many applications only need cheaper projections of
-
Sensitivities, defined for a given direction
in the input space as:This expression is easily computed from right to left, interleaved with the original program instructions. This is the tangent mode of AD.
-
Adjoints, defined after transposition (
), for a given weighting of the outputs as:This expression is most efficiently computed from right to left, because matrix
vector products are cheaper than matrix matrix products. This is the adjoint mode of AD, most effective for optimization, data assimilation [37], adjoint problems [32], or inverse problems.
Adjoint AD builds a very efficient program [34],
which computes the gradient in a time independent from the number of parameters
However, the
Another research issue is to make the AD model cope with the constant evolution of modern language constructs. From the old days of Fortran77, novelties include pointers and dynamic allocation, modularity, structured data types, objects, vectorial notation and parallel programming. We keep developing our models and tools to handle these new constructs.