New results on program reversals

For adjoint calculations, parameter estimation, and similar purposes, one may need to produce all qualities 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 probably optimal with regards to the number of concurrent processes and the total amount of memory required.