Skip to main content

Reduced Execution Semantics of MPI: From Theory to Practice

  • Conference paper
FM 2009: Formal Methods (FM 2009)

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

Included in the following conference series:

Abstract

There is growing need to develop formal verification tools for Message Passing Interface (MPI) programs to eliminate bugs such as deadlocks and local assertion violations. Of all approaches, dynamic verification is most practical for MPI. Since the number of interleavings of concurrent programs grow exponentially, we devise a dynamic interleaving reduction algorithm (dynamic partial order reduction, DPOR) tailor-made for MPI, called POE. The key contributions of this paper are: (i) a formal semantics that elucidates the complex dynamic semantics of MPI, and played an essential role in the design of the POE algorithm and the construction of the ISP tool, and (ii) a formal specification of our POE algorithm. We discuss how these ideas may help us build dynamic verifiers for other APIs, and summarize a dynamic verifier being designed for applications written using a recently proposed API for multi-core communication.

Supported in part by Microsoft and NSF award CNS00509379.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Godefroid, P.: Model Checking for Programming Languages using Verisoft. In: POPL, pp. 174–186 (1997)

    Google Scholar 

  2. Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: POPL, pp. 110–121. ACM, New York (2005)

    Google Scholar 

  3. The Java Pathfinder, http://javapathfinder.sourceforge.net

  4. Musuvathi, M., Qadeer, S.: Iterative context bounding for systematic testing of multithreaded programs. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 446–455 (2007)

    Google Scholar 

  5. CHESS: Find and Reproduce Heisenbugs in Concurrent Programs, http://research.microsoft.com/en-us/projects/chess/

  6. Yang, Y., Chen, X., Gopalakrishnan, G., Wang, C.: Automatic Discovery of Transition Symmetry in Multithreaded Programs using Dynamic Analysis. In: SPIN 2009, Grenoble (June 2009)

    Google Scholar 

  7. MPI Standard 2.1., http://www.mpi-forum.org/docs/

  8. Vakkalanka, S., Gopalakrishnan, G., Kirby, R.M.: Dynamic verification of MPI programs with reductions in presence of split operations and relaxed orderings. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 66–79. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  9. Vo, A., Vakkalanka, S., DeLisi, M., Gopalakrishnan, G., Kirby, R.M., Thakur, R.: Formal verification of practical mpi programs. In: PPoPP 2009 (2009)

    Google Scholar 

  10. Vakkalanka, S., DeLisi, M., Gopalakrishnan, G., Kirby, R.M.: Scheduling considerations for building dynamic verification tools for MPI. In: PADTAD-VI 2008 (2008)

    Google Scholar 

  11. Vakkalanka, S., et al.: Static-analysis Assisted Dynamic Verification of MPI Waitany Programs (Poster Abstract). In: Ropo, M., Westerholm, J., Dongarra, J. (eds.) EuroPCM/MPI 2009. LNCS, vol. 5759, p. 329. Springer, Heidelberg (2009)

    Google Scholar 

  12. Vo, A., et al.: Sound and Efficient Dynamic Verification of MPI Programs with Probe Non-Determinism. In: Ropo, M., Westerholm, J., Dongarra, J. (eds.) EuroPCM/MPI 2009. LNCS, vol. 5759, pp. 271–281. Springer, Heidelberg (2009)

    Google Scholar 

  13. Palmer, R., DeLisi, M., Gopalakrishnan, G., Kirby, R.M.: An Approach to Formalization and Analysis of Message Passing Libraries. In: Leue, S., Merino, P. (eds.) FMICS 2007. LNCS, vol. 4916, pp. 164–181. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  14. Li, G., et al.: Formal Specification of the MPI 2.0 Standard in TLA+. Under Submission, http://www.cs.utah.edu/formal_verification/mpitla/

  15. Lamport, L.: Specifying Systems: The TLA Language and Tools. Addison-Wesley, Reading (2004)

    Google Scholar 

  16. Karypis, G., Kumar, V.: Parallel multilevel k-way partitioning scheme for irregular graphs. In: SuperComputing, SC (1996)

    Google Scholar 

  17. Siegel, S.F., Siegel, A.R.: MADRE: The Memory-Aware Data Redistribution Engine. In: Lastovetsky, A., Kechadi, T., Dongarra, J. (eds.) EuroPVM/MPI 2008. LNCS, vol. 5205, pp. 218–226. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  18. Workshop on Exploiting Concurrency Efficiently and Correctly, Grenoble, Discussion of Challenge Problems (June 2009), http://www.cs.utah.edu/ec2

  19. Pacheco, P.: Parallel Programming with MPI. Morgan Kaufmann, San Francisco (1996)

    Google Scholar 

  20. DeLisi, M.: Umpire Test Suite Results using ISP, http://www.cs.utah.edu/formal_verification/ISP_Tests/

  21. Lamport, L.: Time Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM 21(7), 558–564 (1978)

    Article  MATH  Google Scholar 

  22. Siegel, S.F.: Efficient Verification of Halting Properties for MPI Programs with Wildcard Receives. In: VMCAI 2006, pp. 413–429 (2006)

    Google Scholar 

  23. Georgelin, P., Pierre, L., Nguyen, T.: A Formal Specification of the MPI Primitives and Communication Mechanisms. Rapport de Recherche LIM 1999-337, Marseille (October 1999)

    Google Scholar 

  24. http://www.cs.utah.edu/formal_verification/ISP-release/

  25. mpiBLAST: Open-Source Parallel BLAST, http://www.mpiblast.org/

  26. The IRS Benchmark Code, https://asc.llnl.gov/computing_resources/purple/archive/benchmarks/irs/

  27. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)

    Google Scholar 

  28. Martin, R., Manohar, A.: Slack Elasticity in Concurrent Computing. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, p. 272. Springer, Heidelberg (1998)

    Google Scholar 

  29. Sharma, S., Gopalakrishnan, G., Mercer, E., Holt, J.: MCC - A runtime verification tool for MCAPI user applications. In: FMCAD 2009, Austin (accepted, 2009)

    Google Scholar 

  30. The Multicore Communications API (MCAPI), http://www.multicore-association.org

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vakkalanka, S., Vo, A., Gopalakrishnan, G., Kirby, R.M. (2009). Reduced Execution Semantics of MPI: From Theory to Practice. In: Cavalcanti, A., Dams, D.R. (eds) FM 2009: Formal Methods. FM 2009. Lecture Notes in Computer Science, vol 5850. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-05089-3_46

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-05089-3_46

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-05088-6

  • Online ISBN: 978-3-642-05089-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics