A Framework for Proving Correctness of Adjoint Message Passing Programs

Uwe Naumann
Laurent Hascoët
Chris Hill
Paul Hovland
Jan Riehme
Jean Utke


Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface (8 pages)

Abstract: Adjoint programs play a central role in modern numerical algorithms such as large-scale sensitivity analysis, parameter tuning, or general nonlinear optimization. They can be generated automatically by compilers. The data-flow of the original program needs to be reversed. If message passing is used, then any communication needs to be reversed too. Crucial properties of the original program such as deadlock-freeness and determinism must be preserved in the adjoint code. A formalism for proving the correctness of compiler-generated adjoints is required but has been missing so far to the best of our knowledge. We propose a proof technique that relies on data dependences in partitioned global address space versions of the adjoint message passing program. Assuming that the original program is deadlock-free and deterministic, the transformation rules can be shown to be correct in the sense that the automatically generated adjoint program exhibits the same properties while implementing the mathematical mapping from given independent inputs onto their corresponding adjoints correctly. As an example we discuss asynchronous unbuffered send/receive using MPI.

Keywords: program transformation, automatic differentiation, inverse computation, MPI, message passing

Full text (pdf)

@inproceedings{Naumann2008AFf,
  author = {Naumann, U. and Hasco{\"e}t, L. and Hill, C. and Hovland, P. and Riehme, J. and Utke, J.},
  title = "A Framework for Proving Correctness of Adjoint Message-Passing Programs",
  booktitle = "Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent
         Advances in Parallel Virtual Machine and Message Passing Interface",
  isbn = "978-3-540-87474-4",
  pages = "316--321",
  location = "Dublin, Ireland",
  doi = "http://dx.doi.org/10.1007/978-3-540-87475-1_44",
  publisher = "Springer-Verlag, Berlin, Heidelberg",
  year = "2008"
}