Title: A high-level abstraction for developing adjoint models

Authors: P. E. Farrell (Imperial College London)
S. W. Funke (Imperial College London)

Adjoint models are extremely useful for many scientific challenges, but the development of adjoint model is typically very difficult. Algorithmic differentiation offers one strategy for simplifying this task: it takes the abstraction that a model is a sequence of primitive instructions, each of which may be differentiated in turn. While extremely successful, this low-level abstraction runs into difficulties in cases of practical interest (differentiating through linear solves, model I/O, calls to external libraries, language features that are unsupported by the AD tool, etc.). In this work, we suggest an alternative, complementary, higher-level abstraction: that a model is a sequence of linear solves. By annotating the model source code with library calls that build a tape of the operators involved and their dependencies, and supplying callbacks to compute the action of these operators, the task of correctly deriving the adjoint model is made significantly easier. We demonstrate this with an application to Fluidity, an extremely complex multiphysics package under development at Imperial College London.


nasaLogo
GMAO Head: Michele Rienecker
Global Modeling and Assimilation Office
NASA Goddard Space Flight Center
Curator: Nikki Privé
Last Updated: May 27 2011