Adjoint MPI Library



Adjoint MPI implements adjoint message passing routines in the context of reverse mode Algorithmic Differentiation for MPI enabled codes. Its emphasis is on preserving the MPI signatures, thus facilitating a smooth transition from MPI to adjoint MPI.

Currently the library supports the Algorithmic Differentiation tools dcc, dco and the compAD module of the NAG Fortran compiler.

The source code is available on github.

Related Work

The adjoinable MPI library is a follow up project, currently providing a common interface for the AD tools tapenade, adolc and dco. Its focus is on performance which, among other things, is achieved through a modified MPI interface.


  • Markus Towara, Michel Schanen, Uwe Naumann, MPI-Parallel Discrete Adjoint OpenFOAM, Procedia Computer Science, Volume 51, 2015, Pages 19-28
  • Michel Schanen, Uwe Naumann, Laurent Hascoët, and Jean Utke, Interpretative Adjoints for Numerical Simulation Codes using MPI, Procedia Computer Science, Volume 1, Issue 1, May 2010, Pages 1825-1833, ISSN 1877-0509, 10.1016/j.procs.2010.04.204.
  • Michel Schanen, Michael Förster, and Uwe Naumann, Second-Order Algorithmic Differentiation by Source Transformation of MPI Code, Recent Advances in the Message Passing Interface, Title: Lecture Notes in Computer Science, 2010, Volume 6305, Pages 257-264, ISBN: 978-3-642-15645-8