Efficient computation of gradients and Jacobians by dynamic exploitation of sparsity in automatic differentiation

Automatic differentiation (AD) is a technique that augments computer codes with statements for the computation of derivatives. The computational workhorse of AD-generated codes for first-order derivatives is the linear combination of vectors. For many large-scale problems, the vectors involved in this operation are inherently sparse. If the underlying function is a partially separable one (e.g., if its Hessian is sparse), many of the intermediate gradient vectors computed by AD will also be sparse, even though the final gradient is likely to be dense. For large Jacobians computations, every intermediate derivative vector is usually at least as sparse as the least sparse row of the final Jacobian. In this paper, we show that dynamic exploitation of the sparsity inherent in derivative computation can result in dramatic gains in runtime and memory savings. For a set of gradient problems exhibiting implicit sparsity, we report on the runtime and memory requirements of computing the gradients with the ADIFOR (...

[1]  J. J. Moré,et al.  Estimation of sparse jacobian matrices and graph coloring problems , 1983 .

[2]  John D. Ramsdell,et al.  Estimation of Sparse Jacobian Matrices , 1983 .

[3]  Thomas F. Coleman,et al.  Software for estimating sparse Jacobian matrices , 1984, ACM Trans. Math. Softw..

[4]  L. Dixon,et al.  Automatic differentiation of large sparse systems , 1990 .

[5]  Andreas Griewank,et al.  The chain rule revisited in scientific computing. , 1991 .

[6]  Guoliang Xue,et al.  The MINPACK-2 test problem collection , 1992 .

[7]  Andreas Griewank,et al.  Automatic Differentiation of Advanced CFD Codes for Multidisciplinary Design , 1992 .

[8]  Andreas Griewank,et al.  ADIFOR - Generating Derivative Codes form Fortran Programs , 1992, Sci. Program..

[9]  C. H. Bischof,et al.  Extending compile-time reverse mode and exploiting partial separability in ADIFOR , 1992 .

[10]  Nicole Rostaing,et al.  Automatic differentiation in Odyssée , 1993 .

[11]  Christian Bischof,et al.  Applications of Automatic Differentiation in CFD , 1994 .

[12]  C. Bischof,et al.  Sensitivity analysis of numerically-simulated convective storms using direct and adjoint methods , 1994 .

[13]  Christian Bischof,et al.  Parallel calculation of sensitivity derivatives for aircraft design using automatic differentiation , 1994 .

[14]  Andreas Griewank,et al.  Computing Large Sparse Jacobian Matrices Using Automatic Differentiation , 1994, SIAM J. Sci. Comput..

[15]  Bruce Christianson,et al.  Optimization & automatic differentiation in Ada: some practical experience , 1994 .

[16]  Christian Bischof,et al.  Fortran 77 interface specification to the SparsLinC 1.0 library , 1995 .

[17]  J. J. Moré,et al.  Global continuation for distance geometry problems , 1995 .

[18]  Andreas Griewank,et al.  Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++ , 1996, TOMS.

[19]  William T. Jones,et al.  Experiences with the application of the ADIC automatic differentiation tool for to the CSCMDO 3-D volume grid generation code , 1996 .

[20]  Jorge J. Moré,et al.  Impact of Partial Separability on Large-Scale Optimization , 1997, Comput. Optim. Appl..

[21]  Christian H. Bischof,et al.  Computing Gradients in Large-Scale Optimization Using Automatic Differentiation , 1997, INFORMS J. Comput..

[22]  Christian Bischof,et al.  The ADIFOR 2.0 system for the automatic differentiation of Fortran 77 programs , 1997 .