Publication

Semantics driven adjoints of the message passing interface

  • Semantische Herleitung der adjungierten Kommunikation des Message Passing Interfaces

Schanen, Michel; Naumann, Uwe (Thesis advisor); Bücker, Martin (Thesis advisor)

Aachen : Publikationsserver der RWTH Aachen University (2016)
Dissertation / PhD Thesis

Aachen, Techn. Hochsch., Diss., 2014

Abstract

Access to correct derivative information is crucial in numerical simulations andoptimization. While finite differences easily provide derivative approximationsthrough perturbing a function's inputs, the adjoint derivative model is the onlyway of acquiring a function's gradient both at machine precision and at the sametime complexity as the initial function evaluation. However, the adjoint model implies acomplete data flow reversal of an executed program. The same implication holds for the Message Passing Interface (MPI) of a parallel implementation. Everycommunication pattern has to be reversed when the adjoint model is applied. This work establishes a framework forthe semantic analysis of MPI communication patterns. It formulates a semanticdriven generation of adjoint patterns of the corresponding original patterns. The MPI standarddefines the semantics of every MPI communication in English language. A moreabstract representation of the MPI semantics is extracted and used in order toapply the logic of Algorithmic Differentiation (AD). Based on these adjointpattern representations a generic adjoint MPI library is implemented that may be usedsemi-automatically with any AD tool. Moreover, theruntime expectation of such an implementation on current cluster systems isanalyzed. The outcome is tested with two software packages used in numericalscience. One is the Portable Extensible Toolkit for Scientific computation(PETSc). It is currently one of the most robust frameworks for parallel linearand nonlinear solvers that exist. The other one is Sisyphe, a sedimenttransport simulation software used in the context of the fluid solver OpenTELEMAC.

Institutions

  • Software and Tools for Computational Engineering Group [123120]
  • Department of Computer Science [120000]