Skip to main content

A Framework for Proving Correctness of Adjoint Message-Passing Programs

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNPSE,volume 5205)

Abstract

We propose a technique for proving correctness of adjoint message passing programs that relies on data dependences in partitioned global address space. As an example we discuss asynchronous unbuffered send/receive using MPI.

Keywords

  • Communication Pattern
  • Address Space
  • Adjoint Method
  • Independent Input
  • Global Address Space

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-540-87475-1_44
  • Chapter length: 6 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   84.99
Price excludes VAT (USA)
  • ISBN: 978-3-540-87475-1
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   109.00
Price excludes VAT (USA)

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho, A., Sethi, R., Ullman, J.: Compilers. Principles, Techniques, and Tools. Addison-Wesley, Reading (1986)

    MATH  Google Scholar 

  2. Bischof, C., Bücker, M., Hovland, P., Naumann, U., Utke, J. (eds.): Advances in Automatic Differentiation. LNCSE, Berlin. Springer, Heidelberg (2008)

    Google Scholar 

  3. Carle, A., Fagan, M.: Automatically differentiating MPI-1 datatypes: The complete story. In: [6] ch. 25, pp. 215–222. Springer, Heildberg (2002)

    Google Scholar 

  4. Faure, C., Dutto, P.: Extension of Odyssée to the MPI library – reverse mode. Rapport de recherche 3774, INRIA, Sophia Antipolis (October 1999)

    Google Scholar 

  5. Coarfa, C., Dotsenko, Y., Mellor-Crummey, J., Cantonnet, F., El-Ghazawi, T., Mohanti, A., Yao, Y., Chavarría-Miranda, D.: An evaluation of global address space languages: co-array fortran and unified parallel c. In: PPoPP 2005: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 36–47. ACM, New York (2005)

    Google Scholar 

  6. Corliss, G., Faure, C., Griewank, A., Hascoët, L., Naumann, U. (eds.): Automatic Differentiation of Algorithms – From Simulation to Optimization. Springer, New York (2002)

    Google Scholar 

  7. Faure, C., Dutto, P., Fidanova, S.: Odysée and parallelism: Extension and validation. In: Procceedings of the 3rd European Conference on Numerical Mathematics and Advanced Applications, Jyväskylä, Finland, July 26-30, 1999, pp. 478–485. World Scientific, Singapore (2000)

    Google Scholar 

  8. Griewank, A.: Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. SIAM, Philadelphia (2000)

    MATH  Google Scholar 

  9. Heimbach, P., Hill, C., Giering, R.: Automatic generation of efficient adjoint code for a parallel Navier-Stokes solver. In: Sloot, P.M.A., Tan, C.J.K., Dongarra, J., Hoekstra, A.G. (eds.) ICCS-ComputSci 2002. LNCS, vol. 2330, pp. 1019–1028. Springer, Heidelberg (2002)

    CrossRef  Google Scholar 

  10. Hovland, P., Bischof, C.: Automatic differentiation of message-passing parallel programs. In: Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing, pp. 98–104. IEEE Computer Society Press, Los Alamitos (1998)

    CrossRef  Google Scholar 

  11. Marotzke, J., Giering, R., Zhang, K., Stammer, D., Hill, C., Lee, T.: Construction of the adjoint MIT ocean general circulation model and application to Atlantic heat transport variability. J. Geophysical Research 104, C12:29, 529, 547 (1999)

    CrossRef  Google Scholar 

  12. Naumann, U.: Call tree reversal is NP-complete. In: [2] (to appear, 2008)

    Google Scholar 

  13. Naumann, U.: DAG reversal is NP-complete. J. Discr. Alg. (to appear, 2008)

    Google Scholar 

  14. Naumann, U., Riehme, J.: A differentiation-enabled Fortran 95 compiler. ACM Transactions on Mathematical Software 31(4), 458–474 (2005)

    MathSciNet  CrossRef  MATH  Google Scholar 

  15. Shasha, D., Snir, M.: Efficient and correct execution of parallel programs that share memory. ACM Trans. Program. Lang. Syst. 10(2), 282–312 (1988)

    CrossRef  Google Scholar 

  16. Mills Strout, M., Kreaseck, B., Hovland, P.: Data-flow analysis for MPI programs. In: ICPP 2006: Proceedings of the 2006 International Conference on Parallel Processing, pp. 175–184. IEEE Computer Society Press, Washington (2006)

    Google Scholar 

  17. Utke, J., Naumann, U., Wunsch, C., Hill, C., Heimbach, P., Fagan, M., Tallent, N., Strout, M.: OpenAD/F: A modular, open-source tool for automatic differentiation of Fortran codes. ACM Transactions on Mathematical Software 34(4) (2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Naumann, U., Hascoët, L., Hill, C., Hovland, P., Riehme, J., Utke, J. (2008). A Framework for Proving Correctness of Adjoint Message-Passing Programs. In: Lastovetsky, A., Kechadi, T., Dongarra, J. (eds) Recent Advances in Parallel Virtual Machine and Message Passing Interface. EuroPVM/MPI 2008. Lecture Notes in Computer Science, vol 5205. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-87475-1_44

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-87475-1_44

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-87474-4

  • Online ISBN: 978-3-540-87475-1

  • eBook Packages: Computer ScienceComputer Science (R0)