Recipes for adjoint code construction
ACM Transactions on Mathematical Software (TOMS)
Automatic differentiation of algorithms: from simulation to optimization
Automatic differentiation of algorithms: from simulation to optimization
Efficient reversal of the intraprocedural flow of control in adjoint computations
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
Future Generation Computer Systems
"To be recorded" analysis in reverse-mode automatic differentiation
Future Generation Computer Systems
Source templates for the automatic generation of adjoint code through static call graph reversal
ICCS'05 Proceedings of the 5th international conference on Computational Science - Volume Part I
A Framework for Proving Correctness of Adjoint Message-Passing Programs
Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Hi-index | 0.00 |
Runs of numerical computer programs can be visualized as directed acyclic graphs (DAGs). We consider the problem of restoring the intermediate values computed by such a program (the vertices in the DAG) in reverse order for a given upper bound on the available memory. The minimization of the associated computational cost in terms of the number of performed arithmetic operations is shown to be NP-complete. The reversal of the data-flow finds application, for example, in the efficient evaluation of adjoint numerical programs. We derive special cases of numerical programs that require the intermediate values exactly in reverse order, thus establishing the NP-completeness of the optimal adjoint computation problem. Last but not least we review some state-of-the-art approaches to efficient data-flow reversal taken by existing software tools for automatic differentiation.