Automatic differentiation of c++ codes for large-scale scientific computing

  • Authors:
  • Roscoe A. Bartlett;David M. Gay;Eric T. Phipps

  • Affiliations:
  • Sandia National Laboratories, Albuquerque, NM;Sandia National Laboratories, Albuquerque, NM;Sandia National Laboratories, Albuquerque, NM

  • Venue:
  • ICCS'06 Proceedings of the 6th international conference on Computational Science - Volume Part IV
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

We discuss computing first derivatives for models based on elements, such as large-scale finite-element PDE discretizations, implemented in the C++ programming language. We use a hybrid technique of automatic differentiation (AD) and manual assembly, with local element-level derivatives computed via AD and manually summed into the global derivative. C++ templating and operator overloading work well for both forward- and reverse-mode derivative computations. We found that AD derivative computations compared favorably in time to finite differencing for a scalable finite-element discretization of a convection-diffusion problem in two dimensions.