Algorithm 799: revolve
- 1 March 2000
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Mathematical Software
- Vol. 26 (1), 19-45
- https://doi.org/10.1145/347837.347846
Abstract
In its basic form, the reverse mode of computational differentiation yields the gradient of a scalar-valued function at a cost that is a small multiple of the computational work needed to evaluate the function itself. However, the corresponding memory requirement is proportional to the run-time of the evaluation program. Therefore, the practical applicability of the reverse mode in its original formulation is limited despite the availability of ever larger memory systems. This observation leads to the development of checkpointing schedules to reduce the storage requirements. This article presents the function revolve, which generates checkpointing schedules that are provably optimal with regard to a primary and a secondary criterion. This routine is intended to be used as an explicit “controller” for running a time-dependent applications program.Keywords
This publication has 3 references indexed in Scilit:
- Circumventing Storage Limitations in Variational Data Assimilation StudiesSIAM Journal on Scientific Computing, 1998
- Achieving logarithmic growth of temporal and spatial complexity in reverse automatic differentiationOptimization Methods and Software, 1992
- Upwind difference schemes for hyperbolic systems of conservation lawsMathematics of Computation, 1982