ABSTRACT
Most distributed parallel programs in the high performance computing (HPC) arena are written using the MPI library. There is growing interest in using model checking for debugging these MPI programs. In this context, partial-order reduction has considerable potential for containing state explosion, given the distributed memory nature of MPI programs. This potential is largely unmet. In this paper, we first define the formal semantics for a non-trivial subset of MPI. We then prove independence theorems based on theformal semantics, paving the way to a semantically clear and general partial-order reduction approach for MPI. Our work describes, for the first time, the exact dependencies between MPI non-blocking send operations and their tests for completion, namely wait and test. We also offer a cleaner solution than in previous works for MPI wildcard receives,a proper handling of which requires knowledge of the future course of computations. We show that Flanagan and Godefroid's dynamic patial-order reduction algorithm offers a natural way to handle the need for future information. Our initial experimental results are encouraging.
- T. Andrews, S. Qadeer, S. K. Rajamani, J. Rehof, and Y. Xie. Zing: A model checker for concurrent software. In CAV 2004:16th International Conference on Computer Aided Verification, Boston, Massachusetts, July 2004, LNCS. Springer-Verlag, 2004.Google ScholarCross Ref
- Steven Barrus, Ganesh Gopalakrishnan, Robert M. Kirby, and Robert Palmer. Verification of MPI programs using SPIN. Technical Report UUCS-04-008, The University of Utah, 2004.Google Scholar
- Twan Basten, Dragan Bosnacki, and Marc Geilen. Cluster-based partial-order reduction. Automated Software Engg., 11(4):365{402, 2004. Google ScholarDigital Library
- E.M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999. Google ScholarDigital Library
- Jayant DeSouza, Bob Kuhn, Bronis R. de Supinski, Victor Samofalov, Sergey Zheltov, and Stanislav Bratanov. Automated, scalable debugging of mpi programs with intel message checker. In Proceedings of the Second International Workshop on Software Engineering for High Performance Computing System Applications, pages 78{82, 2005. ISBN:1-59593-117-1. Google ScholarDigital Library
- Cormac Flanagan and Patrice Godefroid. Dynamic partial-order reduction for model checking software. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 110{121, New York, NY, USA, 2005. ACM Press. Google ScholarDigital Library
- Philippe Georgelin, Laurence Pierre, and Tin Nguyen. A formal specification of the MPI primitives and communication mechanisms. Technical report, LIM, 1999.Google Scholar
- Patrice Godefroid. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. LNCS 1032. Springer-Verlag, 1996. Google ScholarDigital Library
- Patrice Godefroid. Model checking for programming languages using Verisoft. In POPL 97: Principles of Programming Languages, pages 174{186, 1997. Google ScholarDigital Library
- G. Holzmann. The model checker SPIN. IEEE Transactions on Software Engineering, 23(5):279{295, May 1997. Google ScholarDigital Library
- Rajit Manohar and Alain J. Martin. Slack elasticity in concurrent computing. In MPC '98: Proceedings of the Mathematics of Program Construction, pages 272{285, London, UK, 1998. Springer-Verlag. Google ScholarDigital Library
- MPI: A Message-Passing Interface Standard. http://www.mpi-forum.org/docs/mpi-11-html/mpi-report.html. Google ScholarDigital Library
- Robert Palmer, Steven Barrus, Yu Yang, Ganesh Gopalakrishnan, and Robert M. Kirby. Gauss: A framework for verifying scientific computing software. In SoftMC: Workshop on Software Model Checking, number 953 in ENTCS, August 2005.Google Scholar
- Robert Palmer, Ganesh Gopalakrishnan, and Robert M. Kirby. The communication semantics of the message passing interface. Technical Report UUCS-06-012, The University of Utah, October 2006.Google Scholar
- Robert Palmer, Ganesh Gopalakrishnan, and Robert M. Kirby. Semantics Driven Dynamic Partial-order Reduction of MPI-based Parallel Programs (full version). Technical Report UUCS-07-011, University of Utah, School of Computing, 2007.Google Scholar
- Salman Pervez, Ganesh Gopalakrishnan, Robert M. Kirby, Rajeev Thakur, and William Gropp. Formal verification of programs that use mpi one-sided communication. In Recent Advances in Parallel Virtual Machine and Message Passing Interface, volume 4192/2006 of LNCS, pages 30{39, Berlin/Heidelberg, 2006. Springer. Google ScholarDigital Library
- http://research.microsoft.com/phoenix.Google Scholar
- Robby, M. Dwyer, and J. Hatcliff. Bogor: An extensible and highly-modular model checking framework. In FSE 03: Foundations of Software Engineering, pages 267{276. ACM, 2003. Google ScholarDigital Library
- Stephen F. Siegel. Efficient verification of halting properties for mpi programs with wildcard receives. In Radhia Cousot, editor, Verification, Model Checking, and Abstract Interpretation: 6th International Conference, VMCAI 2005, pages 413{429, Paris, January 2005. Springer-Verlag. Google ScholarDigital Library
- Stephen F. Siegel. Model checking nonblocking mpi programs. In B. Cook and A. Podelski, editors, VMCAI 07, number 4349 in LNCS, pages 44{58. Springer-Verlag, 2007. Google ScholarDigital Library
- Stephen F. Siegel and George Avrunin. Analysis of mpi programs. Technical Report UM-CS-2003-036, Department of Computer Science, University of Massachusetts Amherst, 2003.Google Scholar
- Stephen F. Siegel and George S. Avrunin. Verification of mpi-based software for scientific computation. In Proceedings of the 11th International SPIN Workshop on Model Checking Software, volume 2989 of LNCS, pages 286{303, Barcelona, April 2004. Springer.Google Scholar
- Stephen F. Siegel and George S. Avrunin. Modeling wildcard-free MPI programs for verification. In ACM SIGPLAN Symposium on Principles and Practices of Parallel Programming, pages 95{106, Chicago, June 2005. Google ScholarDigital Library
- Antti Valmari. A stubborn attack on state explosion. In CAV 91: Computer Aided Verification, pages 156{165. Springer-Verlag, 1991. Google ScholarDigital Library
Index Terms
- Semantics driven dynamic partial-order reduction of MPI-based parallel programs
Recommendations
Formal verification of practical MPI programs
PPoPP '09This paper considers the problem of formal verification of MPI programs operating under a fixed test harness for safety properties without building verification models. In our approach, we directly model-check the MPI/C source code, executing its ...
Verification of MPI programs using CIVL
EuroMPI '17: Proceedings of the 24th European MPI Users' Group MeetingCIVL is a framework for verifying concurrent programs. The framework is built around a language, CIVL-C, that extends sequential C with general-purpose primitives that can be used to model a variety of concurrency dialects, including OpenMP, Pthreads, ...
Partial-order reduction and trail improvement in directed model checking
In this paper we present work on trail improvement and partial-order reduction in the context of directed explicit-state model checking. Directed explicit-state model checking employs directed heuristic search algorithms such as A* or best-first search ...
Comments