Skip to main content

An Approach to Formalization and Analysis of Message Passing Libraries

  • Conference paper
Formal Methods for Industrial Critical Systems (FMICS 2007)

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

Abstract

Message passing using libraries implementing the Message Passing Interface (MPI) standard is the dominant communication mechanism in high performance computing (HPC) applications. Yet, the lack of an implementation independent formal semantics for MPI is a huge void that must be filled, especially given the fact that MPI will be implemented on novel hardware platforms in the near future. To help reason about programs that use MPI for communication, we have developed a formal TLA+ semantic definition of the point to point communication operations to augment the existing standard. The proposed semantics includes 42 MPI functions, including all 35 point to point operations, many of which have not been formally modeled previously. We also present a framework to extract models from SPMD-style C programs, so that designers may understand the semantics of MPI by exercising short, yet pithy, communication scenarios written in C/MPI. In this paper, we describe (i) the TLA+ MPI model features, such as handling the explicit memory for each process to facilitate the modeling of C pointers, and some of the widely used MPI operations, (ii) the model extraction framework and the simplifications made to the model that help facilitate explicit-state model checking of formal semantic definitions, (iii) a customized model checker for MPI that performs much faster model checking, and features a dynamic partial-order reduction algorithm whose correctness is directly based on the formal semantics, and (iv) an error trail replay facility in the Visual Studio environment. Our effort has helped identify a few omissions in the MPI reference standard document. These benefits suggest that a formal semantic definition and exploration approach as described here must accompany every future effort in creating parallel and distributed programming libraries.

Supported in part by NSF award CNS-00509379, Microsoft HPC Institutes Program, and SRC Contract 2005-TJ-1318.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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. The Message Passing Interface Forum: MPI: A Message-Passing Interface Standard (1995), http://www.mpi-forum.org/docs/mpi-11-html/mpi-report.html

  2. Gropp, W., Lusk, E.L., Doss, N.E., Skjellum, A.: A high-performance, portable implementation of the mpi message passing interface standard. Parallel Computing 22(6), 789–828 (1996)

    Article  MATH  Google Scholar 

  3. Microsoft: Microsoft windows compute cluster 2003 (2006), www.microsoft.com/windowsserver2003/ccs/faq.mspx

  4. Squyres, J.M., Lumsdaine, A.: A Component Architecture for LAM/MPI. In: Dongarra, J., Laforenza, D., Orlando, S. (eds.) EuroPVM/MPI 2003. LNCS, vol. 2840, pp. 379–387. Springer, Heidelberg (2003)

    Google Scholar 

  5. Gabriel, E., Fagg, G.E., Bosilca, G., Angskun, T., Dongarra, J.J., Squyres, J.M., Sahay, V., Kambadur, P., Barrett, B., Lumsdaine, A., Castain, R.H., Daniel, D.J., Graham, R.L., Woodall, T.S.: Open MPI: Goals, concept, and design of a next generation MPI implementation. In: Proceedings, 11th European PVM/MPI Users’ Group Meeting, Budapest, Hungary, pp. 97–104 (2004)

    Google Scholar 

  6. Danalis, A., Kim, K.Y., Pollock, L., Swany, M.: Transformations to parallel codes for communication-computation overlap. In: SC 2005: Proceedings of the 2005 ACM/IEEE conference on Supercomputing, Washington, DC, USA, p. 58. IEEE Computer Society, Los Alamitos (2005)

    Google Scholar 

  7. Lamport, L.: Specifying concurrent systems with TLA (1999)

    Google Scholar 

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

    Google Scholar 

  9. Yu, Y., Manolios, P., Lamport, L.: Model checking TLA+ specifications. In: Pierre, L., Kropf, T. (eds.) CHARME 1999. LNCS, vol. 1703, pp. 54–66. Springer, Heidelberg (1999)

    Google Scholar 

  10. Palmer, R., Gopalakrishnan, G., Kirby, R.M.: Semantics Driven Dynamic Partial-order Reduction of MPI-based Parallel Programs. In: PADTAD 2007 (2007), http://www.cs.utah.edu/formal_verification/verification_environment

  11. Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: POPL 2005: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 110–121. ACM Press, New York (2005)

    Chapter  Google Scholar 

  12. IEEE: IEEE Standard for Radix-independent Floating-point Arithmetic, ANSI/IEEE Std 854–1987 (1987)

    Google Scholar 

  13. Harrison, J.: Formal verification of square root algorithms. Formal Methods in System Design 22(2), 143–154 (2003); Guest Editors: Gopalakrishnan, G., Hunt, W., Jr.

    Google Scholar 

  14. Lamport, L.: The Win32 Threads API Specification (1996), http://research.microsoft.com/users/lamport/tla/threads/threads.html

  15. Abadi, M., Lamport, L., Merz, S.: A tla solution to the rpc-memory specification problem. In: Formal Systems Specification, pp. 21–66 (1994)

    Google Scholar 

  16. Jackson, D.: Alloy: A lightweight object modelling notation. ACM Transactions on Software Engineering Methodologies 11(2), 256–290 (2002)

    Article  Google Scholar 

  17. Jackson, D., Schechter, I., Shlyahter, H.: Alcoa: The alloy constraint analyzer. In: ICSE 2000: Proceedings of the 22nd international conference on Software engineering, pp. 730–733. ACM Press, New York (2000)

    Google Scholar 

  18. Jackson, D.: Alloy: A new technology for software modeling. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  19. Georgelin, P., Pierre, L., Nguyen, T.: A formal specification of the MPI primitives and communication mechanisms. Technical report, LIM (1999)

    Google Scholar 

  20. Eijk, P.V., Diaz, M. (eds.): Formal Description Technique Lotos: Results of the Esprit Sedos Project. Elsevier Science Inc., New York, NY, USA (1989)

    MATH  Google Scholar 

  21. Siegel, S.F., Avrunin, G.: Analysis of mpi programs. Technical Report UM-CS-2003-036, Department of Computer Science, University of Massachusetts Amherst (2003)

    Google Scholar 

  22. Holzmann, G.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)

    Article  MathSciNet  Google Scholar 

  23. Siegel, S.F., Avrunin, G.S.: Modeling wildcard-free MPI programs for verification. In: SIGPLAN Symposium, A.C.M. (ed.) ACM SIGPLAN Symposium on Principles and Practices of Parallel Programming, Chicago, pp. 95–106 (2005)

    Google Scholar 

  24. Siegel, S.F.: Model Checking Nonblocking MPI Programs. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol. 4349, pp. 44–58. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  25. Barrus, S., Gopalakrishnan, G., Kirby, R.M., Palmer, R.: Verification of MPI programs using SPIN. Technical Report UUCS-04-008, The University of Utah (2004)

    Google Scholar 

  26. Palmer, R., Barrus, S., Yang, Y., Gopalakrishnan, G., Kirby, R.M.: Gauss: A framework for verifying scientific computing software. In: SoftMC: Workshop on Software Model Checking. ENTCS, vol. 953 (2005)

    Google Scholar 

  27. Pervez, S., Gopalakrishnan, G., Kirby, R.M., Thakur, R., Gropp, W.: Formal verification of programs that use MPI one-sided communication. In: Mohr, B., Träff, J.L., Worringen, J., Dongarra, J. (eds.) PVM/MPI 2006. LNCS, vol. 4192, pp. 30–39. Springer, Berlin, Heidelberg (2006)

    Chapter  Google Scholar 

  28. Palmer, R., Gopalakrishnan, G., Kirby, R.M.: The communication semantics of the message passing interface. Technical Report UUCS-06-012, The University of Utah (2006)

    Google Scholar 

  29. Gropp, W.D.: Personal communication (2006)

    Google Scholar 

  30. Microsoft: Phoenix academic program (2007), http://research.microsoft.com/phoenix

  31. Ellson, J., Gansner, E., Koutsofios, L., North, S.C., Woodhull, G.: Graphviz – open source graph drawing tools. In: Mutzel, P., Jünger, M., Leipert, S. (eds.) GD 2001. LNCS, vol. 2265, p. 483. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  32. Lamport, L.: A +CAL user’s manual (2006), http://research.microsoft.com/users/lamport/tla/p-manual.pdf

  33. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer-Verlag New York, Inc., Secaucus, NJ, USA (1999)

    MATH  Google Scholar 

  34. Pacheco, P.S.: Parallel programming with MPI. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA (1996)

    Google Scholar 

  35. Siegel, S.F., Avrunin, G.S.: Verification of mpi-based software for scientific computation. In: Graf, S., Mounier, L. (eds.) SPIN 2004. LNCS, vol. 2989, pp. 286–303. Springer, Heidelberg (2004)

    Google Scholar 

  36. Gropp, W., Thakur, R.: Issues in developing a thread-safe MPI implementation. In: Mohr, B., Träff, J.L., Worringen, J., Dongarra, J. (eds.) PVM/MPI 2006. LNCS, vol. 4192, pp. 12–21. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Stefan Leue Pedro Merino

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Palmer, R., DeLisi, M., Gopalakrishnan, G., Kirby, R.M. (2008). An Approach to Formalization and Analysis of Message Passing Libraries. In: Leue, S., Merino, P. (eds) Formal Methods for Industrial Critical Systems. FMICS 2007. Lecture Notes in Computer Science, vol 4916. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-79707-4_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-79707-4_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-79706-7

  • Online ISBN: 978-3-540-79707-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics