Software for estimating sparse Jacobian matrices
ACM Transactions on Mathematical Software (TOMS)
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The algebraic eigenvalue problem
The algebraic eigenvalue problem
Direct methods for sparse matrices
Direct methods for sparse matrices
Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++
ACM Transactions on Mathematical Software (TOMS)
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
ADIC: an extensible automatic differentiation tool for ANSI-C
Software—Practice & Experience
Recipes for adjoint code construction
ACM Transactions on Mathematical Software (TOMS)
Evaluating derivatives: principles and techniques of algorithmic differentiation
Evaluating derivatives: principles and techniques of algorithmic differentiation
Parallel simulation of compressible flow using automatic differentiation and PETSc
Parallel Computing - Special issue on parallel computing in aerospace
Automatic differentiation of algorithms: from simulation to optimization
Automatic differentiation of algorithms: from simulation to optimization
Elimination techniques for cheap Jacobians
Automatic differentiation of algorithms
AD tools and prospects for optimal AD in CFD flux Jacobian calculations
Automatic differentiation of algorithms
Adifor 2.0: Automatic Differentiation of Fortran 77 Programs
IEEE Computational Science & Engineering
ICCS '02 Proceedings of the International Conference on Computational Science-Part II
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
ADMIT-1 : Automatic Differentiation and MATLAB Interface Toolbox
ADMIT-1 : Automatic Differentiation and MATLAB Interface Toolbox
Optimal accumulation of Jacobian matrices by elimination methods on the dual computational graph
Mathematical Programming: Series A and B
Hierarchical automatic differentiation by vertex elimination and source transformation
ICCSA'03 Proceedings of the 2003 international conference on Computational science and its applications: PartII
A differentiation-enabled Fortran 95 compiler
ACM Transactions on Mathematical Software (TOMS)
An efficient overloaded implementation of forward mode automatic differentiation in MATLAB
ACM Transactions on Mathematical Software (TOMS)
Optimal vertex elimination in single-expression-use graphs
ACM Transactions on Mathematical Software (TOMS)
Hierarchical automatic differentiation by vertex elimination and source transformation
ICCSA'03 Proceedings of the 2003 international conference on Computational science and its applications: PartII
An efficient overloaded method for computing derivatives of mathematical functions in MATLAB
ACM Transactions on Mathematical Software (TOMS)
Hi-index | 0.00 |
This article presents the first extended set of results from EliAD, a source-transformation implementation of the vertex-elimination Automatic Differentiation approach to calculating the Jacobians of functions defined by Fortran code (Griewank and Reese, Automatic Differentiation of Algorithms: Theory, Implementation, and Application, 1991, pp. 126--135). We introduce the necessary theory in terms of well known algorithms of numerical linear algebra applied to the linear, extended Jacobian system that prescribes the relationship between the derivatives of all variables in the function code. Using an example, we highlight the potential for numerical instability in vertex-elimination. We describe the source transformation implementation of our tool EliAD and present results from five test cases, four of which are taken from the MINPACK-2 collection (Averick et al, Report ANL/MCS-TM-150, 1992) and for which hand-coded Jacobian codes are available. On five computer/compiler platforms, we show that the Jacobian code obtained by EliAD is as efficient as hand-coded Jacobian code. It is also between 2 to 20 times more efficient than that produced by current, state of the art, Automatic Differentiation tools even when such tools make use of sophisticated techniques such as sparse Jacobian compression. We demonstrate the effectiveness of reverse-ordered pre-elimination from the (successively updated) extended Jacobian system of all intermediate variables used once. Thereafter, the monotonic forward/reverse ordered eliminations of all other intermediates is shown to be very efficient. On only one test case were orderings determined by the Markowitz or related VLR heuristics found superior. A re-ordering of the statements of the Jacobian code, with the aim of reducing reads and writes of data from cache to registers, was found to have mixed effects but could be very beneficial.