Discrete adjoints of PETSc through dco/c++ and adjoint MPI

  • Authors:
  • Johannes Lotz;Uwe Naumann;Max Sagebaum;Michel Schanen

  • Affiliations:
  • LuFG Informatik 12: Software and Tools for Computational Engineering, RWTH Aachen University, Germany;LuFG Informatik 12: Software and Tools for Computational Engineering, RWTH Aachen University, Germany;Department of Mathematics and Center for Computational Engineering Science, RWTH Aachen University, Germany;LuFG Informatik 12: Software and Tools for Computational Engineering, RWTH Aachen University, Germany

  • Venue:
  • Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

PETSc's [1] robustness, scalability and portability makes it the foundation of various parallel implementations of numerical simulation codes. We formulate a least squares problem using a PETSc implementation as the model function and rely on adjoint mode Algorithmic Differentiation (AD) [2] for the accumulation of the derivative information. Various AD tools exist that apply the adjoint model to a given C/C++ code, while none is able to differentiate MPI [3] enabled code. We solved this by combining dco/c++ and the Adjoint MPI library, leading to a fully discrete adjoint implementation of PETSc. We want to underline that this work differs from accumulating derivative information through AD for PETSc algorithms (see e.g. [4]). We compute derivative information of PETSc itself opening up the possibility of an enclosing optimization problem (as needed, e.g., by [5]).