ADIFOR - Generating Derivative Codes form Fortran Programs

The numerical methods employed in the solution of many scientific computing problems require the computation of derivatives of a function f $R^N$→$R^m$. Both the accuracy and the computational requirements of the derivative computation are usually of critical importance for the robustness and speed of the numerical solution. Automatic Differentiation of FORtran (ADIFOR) is a source transformation tool that accepts Fortran 77 code for the computation of a function and writes portable Fortran 77 code for the computation of the derivatives. In contrast to previous approaches, ADIFOR views automatic differentiation as a source transformation problem. ADIFOR employs the data analysis capabilities of the ParaScope Parallel Programming Environment, which enable us to handle arbitrary Fortran 77 codes and to exploit the computational context in the computation of derivatives. Experimental results show that ADIFOR can handle real-life codes and that ADIFOR-generated codes are competitive with divided-difference approximations of derivatives. In addition, studies suggest that the source transformation approach to automatic differentiation may improve the time to compute derivatives by orders of magnitude.

[1]  R. Courant,et al.  Über die partiellen Differenzengleichungen der mathematischen Physik , 1928 .

[2]  Walter L. Badger,et al.  Introduction to Chemical Engineering , 1955 .

[3]  G. Dahlquist A special stability problem for linear multistep methods , 1963 .

[4]  J. Butcher Implicit Runge-Kutta processes , 1964 .

[5]  Ionel M. Navon,et al.  FESW — a finite-element Fortran IV program for solving the shallow-water equations , 1979 .

[6]  L. B. Rall Applications of Software for Automatic Differentiation in Numerical Computation , 1980 .

[7]  R. D. Grigorieff,et al.  Fundamentals of Numerical Computation (Computer-Oriented Numerical Analysis) , 1980, Computing Supplementum.

[8]  D. Cacuci Sensitivity theory for nonlinear systems. I. Nonlinear functional analysis approach , 1981 .

[9]  Louis B. Rall,et al.  Automatic Differentiation: Techniques and Applications , 1981, Lecture Notes in Computer Science.

[10]  D. Cacuci Sensitivity theory for nonlinear systems. II. Extensions to additional classes of responses , 1981 .

[11]  S. Parter On the swirling flow between rotating coaxial disks: a survey , 1982 .

[12]  G. R. Shubin,et al.  Steady Shock Tracking, Newton's Method, and the Supersonic Blunt Body Problem , 1982 .

[13]  W. Eckhaus,et al.  Theory and Applications of Singular Perturbations , 1982 .

[14]  K. E. Hillstrom,et al.  JAKEF: A Portable Symbolic Differentiator of Functions Given by Algorithms , 1982 .

[15]  Paul J. Werbos,et al.  Applications of advances in nonlinear sensitivity analysis , 1982 .

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

[17]  John E. Dennis,et al.  Numerical methods for unconstrained optimization and nonlinear equations , 1983, Prentice Hall series in computational mathematics.

[18]  P. Toint,et al.  Optimal estimation of Jacobian and Hessian matrices that arise in finite difference calculations , 1984 .

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

[20]  J. Butcher The numerical analysis of ordinary differential equations: Runge-Kutta and general linear methods , 1987 .

[21]  Ken Kennedy,et al.  Parascope:a Parallel Programming Environment , 1988 .

[22]  John D. Pryce,et al.  Two FORTRAN packages for assessing initial value methods , 1987, TOMS.

[23]  L. C. W. Dixon,et al.  Automatic Differentiation and Parallel Processing in Optimisation , 1988 .

[24]  George F. Corliss,et al.  Applications of differentiation arithmetic , 1988 .

[25]  Janet E. Rogers,et al.  Orthogonal Distance Regression ∗ , 2009 .

[26]  Ken Kennedy,et al.  Fortran D Language Specification , 1990 .

[27]  Thomas F. Coleman,et al.  Large-Scale Numerical Optimization , 1990 .

[28]  A. Griewank,et al.  On the calculation of Jacobian matrices by the Markowitz rule , 1991 .

[29]  F. W. Schneider,et al.  Bifurcation and Chaos: Analysis, Algorithms, Applications , 1991 .

[30]  Andreas Griewank,et al.  Automatic Evaluation of First and Higher-Derivative Vectors , 1991 .

[31]  C. Bischof,et al.  Utilities for building and optimizing a computational graph for algorithmic decomposition , 1991 .

[32]  B. M. Averick,et al.  The MINPACK-2 test problem collection (preliminary version) , 1991 .

[33]  David W. Juedes,et al.  A taxonomy of automatic differentiation tools , 1991 .

[34]  C. Bischof,et al.  ADIFOR working note {number_sign}2: Using ADIFOR to compute dense and sparse Jacobians , 1991 .

[35]  C. Bischof,et al.  ADIFOR exception handling , 1992 .

[36]  Bruce Christianson,et al.  Automatic Hessians by reverse accumulation , 1992 .

[37]  Bruce Christianson,et al.  Reverse accumulation and accurate rounding error estimates for taylor series , 1992 .

[38]  Andreas Griewank,et al.  Achieving logarithmic growth of temporal and spatial complexity in reverse automatic differentiation , 1992 .

[39]  Richard J. Fateman,et al.  Automatic Differentiation of Algorithms: Theory, Implementation, and Application (Andreas Griewank and George F. Corliss, eds.) , 1993, SIAM Rev..

[40]  A. Griewank,et al.  Automatic differentiation of algorithms : theory, implementation, and application , 1994 .