Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The Maple handbook: Maple V Release 4
The Maple handbook: Maple V Release 4
Evaluating derivatives: principles and techniques of algorithmic differentiation
Evaluating derivatives: principles and techniques of algorithmic differentiation
Automatic differentiation of algorithms
"To be recorded" analysis in reverse-mode automatic differentiation
Future Generation Computer Systems
Hi-index | 0.01 |
Checkpointing is a technique to reduce the memory consumption of adjoint programs produced by reverse Automatic Differentiation. However, checkpointing also uses a non-negligible memory space for the so-called “snapshots”. We analyze the data-flow of checkpointing, yielding a precise characterization of all possible memory-optimal options for snapshots. This characterization is formally derived from the structure of checkpoints and from classical data-flow equations. In particular, we select two very different options and study their behavior on a number of real codes. Although no option is uniformly better, the so-called “lazy-snapshot” option appears preferable in general.