Home // International Journal On Advances in Software, volume 5, numbers 1 and 2, 2012 // View article


Compiler-based Differentiation of Higher-Order Numerical Simulation Codes using Interprocedural Checkpointing

Authors:
Michel Schanen
Michael Förster
Boris Gendler
Uwe Naumann

Keywords: Algorithmic Differentiation; Source Transformation; Optimization; Numerical Simulation; Checkpointing

Abstract:
Based on algorithmic differentiation, we present a derivative code compiler capable of transforming implementations of multivariate vector functions into a program for computing derivatives. Its unique reapplication feature allows the generation of code of an arbitrary order of differentiation, where resulting values are still accurate up to machine precision compared to the common numerical approximation by finite differences. The high memory load resulting from the adjoint model of Algorithmic Differentiation is circumvented using semi-automatic interprocedural checkpointing enabled by the joint reversal scheme implemented in our compiler. The entire process is illustrated by a one dimensional implementation of Burgers' equation in a generic optimization setting using for example Newton's method. In this implementation, finite differences are replaced by the computation of adjoints, thus saving an order of magnitude in terms of computational complexity.

Pages: 27 to 35

Copyright: Copyright (c) to authors, 2012. Used with permission.

Publication date: June 30, 2012

Published in: journal

ISSN: 1942-2628