Differentiation-Enabled Fortran 95 Compiler Technology (CompAD-II)
Lead Research Organisation:
University of Hertfordshire
Department Name: Science and Technology RI
Abstract
Given a Fortran program which evaluates numerically a scalar output y=f(x) from a vector x of input values, we are frequently interested in evaluating the gradient vector g=f '(x) whose components are the derivatives (sensitivities) dy/dx.Automatic Differentiation is a set of techniques for the automatic transformation of the program for evaluating f into a program for evaluating f '. In particular the adjoint, or reverse, mode of Automatic Differentiation will produce numerical values for all components of the gradient g at a computational cost of about five evaluations of f, regardless of the number of components in x and g.This proposal is for continuation of the work begun in GR/R55252. The integration of Automatic Differentiation capabilities into the NAGWare Fortran 95 Compiler will be extended to incorporate the reverse (or adjoint) mode of operation.Building on the CompAD-I active data type already introduced, basic reverse mode will be built and sucessively extended through local Jacobians of basic blocks through to optimally pre-accumulated gradients of single assignments with user-defined checkpointing.This will be the first time in the world that adjoint mode AD has been fully integrated with an industrial strength Fortran compiler. In parallel with development of the compiler (and the necessary adjoint theory) at Hatfield, the project will incorporate development of, and experience with, reference problems at Cranfield and Qinetiq. A primary purpose of this project is to explore alternative algorithms and representations for the semantic transformations associated with adjoints in this context, in order to lay the groundwork for future progress. However the Fortran Compiler resulting from this project is designed to be of widespread direct use in scientific computing (see next section).
Publications
Christianson B
(2006)
Automatic Differentiation: Applications, Theory, and Implementations
McGuiness J
(2006)
Advances in Computer Systems Architecture
Naumann U
(2008)
Optimal vertex elimination in single-expression-use graphs
in ACM Transactions on Mathematical Software
Naumann U
(2006)
Optimal Jacobian accumulation is NP-complete
in Mathematical Programming
Riehme J
(2008)
Advances in Automatic Differentiation
U Naumann
(2007)
Automatic First- and Second-Order Adjoints for Truncated Newton
U Naumann
(2007)
An L-Attributed Grammar for Adjoint Code
Description | Numerical Algorithms Group Ltd |
Organisation | Numerical Algorithms Group Ltd |
Country | United Kingdom |
Sector | Private |
Start Year | 2006 |
Description | QinetiQ |
Organisation | Qinetiq |
Country | United Kingdom |
Sector | Private |
Start Year | 2006 |
Description | RWTH Aachen University |
Organisation | RWTH Aachen University |
Country | Germany |
Sector | Academic/University |
Start Year | 2006 |