For adjoint calculations, parameter estimation, and similar purposes, one may need to produce all quantities calculated during the execution of a computer program in reverse order. The simplest possible approach is to record a complete execution log and then to read it backwards. This may require massive amounts of storage. Instead one may generate the execution log piecewise by restarting the “forward” calculation repeatedly from suitably placed checkpoints. For such program execution reversals we present parallel reversal schedules that are provably optimal with regards to the number of concurrent processes and the total amount of memory required.
KeywordsTemporal Complexity Reverse Step Brute Force Approach Computational Cycle Step Cost
Unable to display preview. Download preview PDF.