Practical Model-Checking Method for Verifying Correctness of MPI Programs

  • Salman Pervez
  • Ganesh Gopalakrishnan
  • Robert M. Kirby
  • Robert Palmer
  • Rajeev Thakur
  • William Gropp
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4757)


Formal program verification often requires creating a model of the program and running it through a model-checking tool. However, this model-creation step is itself error prone, tedious, and difficult for someone not familiar with formal verification. In this paper, we describe a tool for verifying correctness of MPI programs that does not require the creation of a model and instead works directly on the MPI program. Our tool uses the MPI profiling interface, PMPI, to trap MPI calls and hand over control of the MPI function execution to a scheduler. The scheduler verifies correctness of the program by executing all “relevant” interleavings of the program. The scheduler records an initial trace and replays its interleaving variants by using dynamic partial-order reduction. We describe the design and implementation of the tool and compare it with our previous work based on model checking.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge, MA (1999)Google Scholar
  2. 2.
    Souza, J.D., Kuhn, B., de Supinski, B.R., Samofalov, V., Zheltov, S., Bratanov, S., Bratanov, S.: Automated, scalable debugging of MPI programs with Intel Message Checker. In: SE-HPCS 2005, pp. 78–82 (2005)Google Scholar
  3. 3.
    Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: POPL, pp. 110–121 (2005)Google Scholar
  4. 4.
    Gao, Q., Yu, W., Huang, W., Panda, D.K.: Application-transparent checkpoint/restart for MPI programs over InfiniBand. In: ICPP (August 2006)Google Scholar
  5. 5.
    Godefroid, P.: Model checking for programming languages using Verisoft. In: POPL 1997: Principles of Programming Languages, pp. 174–186 (1997)Google Scholar
  6. 6.
    Holzmann, G.J.: The Spin Model Checker. Addison-Wesley, Reading (2003)Google Scholar
  7. 7.
    Krammer, B., Resch, M.M.: Correctness checking of MPI one-sided communication using MARMOT. In: Mohr, B., Träff, J.L., Worringen, J., Dongarra, J. (eds.) Recent Advances in Parallel Virtual Machine and Message Passing Interface. LNCS, vol. 4192, pp. 105–114. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Luecke, G., Chen, H., Coyle, J., Hoekstra, J., Kraeva, M., Zou, Y.: MPI-CHECK: A tool for checking Fortran 90 MPI programs. Concurrency and Computation: Practice and Experience 15, 93–100 (2003)MATHCrossRefGoogle Scholar
  9. 9.
    Palmer, R., Barrus, S., Yang, Y., Gopalakrishnan, G., Kirby, R.M.: Gauss: A framework for verifying scientific computing software. In: Workshop on Software Model Checking. ENTCS 953 (2005)Google Scholar
  10. 10.
    Palmer, R., Gopalakrishnan, G., Kirby, R.M.: Semantics driven dynamic partial-order reduction of MPI-based parallel programs. In: PADTAD (2007)Google Scholar
  11. 11.
    Pervez, S., Gopalakrishnan, G., Kirby, R.M., Thakur, R., Gropp, W.: Formal verification of programs that use MPI one-sided communication. In: EuroPVM/MPI, pp. 30–39 (2006)Google Scholar
  12. 12.
    Preliminary release of the ISP software at
  13. 13.
    Siegel, S.F.: Model checking nonblocking MPI programs. In: Verification, Model Checking, and Abstract Interpretation (VMCAI) (January 2007)Google Scholar
  14. 14.
    Siegel, S.F., Avrunin, G.S.: Verification of MPI-based software for scientific computation. In: SPIN Workshop, pp. 286–303 (April 2004)Google Scholar
  15. 15.
    Thakur, R., Ross, R., Latham, R.: Implementing byte-range locks using MPI one-sided communication. In: EuroPVM/MPI, pp. 120–129 (September 2005)Google Scholar
  16. 16.
    Vetter, J.S., de Supinski, B.R.: Dynamic software testing of MPI applications with Umpire. In: Proc. of SC2000, pp. 70–79 (2000)Google Scholar
  17. 17.
    Visser, W., Havelund, K., Brat, G., Park, S.: Model checking programs. In: ASE (September 2000)Google Scholar
  18. 18.
    Yang, Y., Chen, X., Gopalakrishnan, G., Kirby, R.M.: Distributed dynamic partial order reduction based verification of threaded software. In: Workshop on Model Checking Software (SPIN 2007) (July 2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Salman Pervez
    • 1
  • Ganesh Gopalakrishnan
    • 1
  • Robert M. Kirby
    • 1
  • Robert Palmer
    • 1
  • Rajeev Thakur
    • 2
  • William Gropp
    • 2
  1. 1.School of Computing, University of Utah, Salt Lake City, UT 84112USA
  2. 2.Mathematics and Computer Science Division, Argonne National Laboratory, Argonne, IL 60439USA

Personalised recommendations