Proceedings Article10.1145/1345206.1345258
ISP: a tool for model checking MPI programs
Sarvani Vakkalanka,Subodh Sharma,Ganesh Gopalakrishnan,Robert M. Kirby +3 more
- 20 Feb 2008
- pp 285-286
87
TL;DR: This paper presents a tool called ISP (in-situ partial order) which aspires to grow into a practical MPI model checker.
read more
Abstract: A significant body of parallel programs are written using MPI [1]. Bugs in MPI programs arise due to many reasons, for example: (i) during manual optimizations that turn blocking sends/receives into their non-blocking counterparts, (ii) in the context of using wild-card communications (and the resulting non-determinism), and (iii) in programs that use one-sided communication [2]. Programmers are acutely aware of the need to test parallel programs over all their interleavings. They also known that this is impossible, thus confining testing to interleavings that are guessed to be adequate – very often incorrectly, as it turns out. Model checking [4] has helped debug many concurrent systems by relying on an exhaustive search of all possible interleavings – albeit on a suitably abstracted system model. For example, SPIN [5] recently won ACM’s prestigious software award, and has been used to verify many real-world protocols. For model checking to be successful in practice: (i) Designers must have modestly expensive techniques to create models of the protocols to be verified. (ii) They must be able to examine a fraction of the interleavings in a concurrent system, and be able to claim that the remaining interleavings are equivalent and hence need not be examined, using a suitable state space reduction algorithm [4, 5]. This paper presents a tool called ISP (in-situ partial order) which aspires to grow into a practical MPI model checker. In the only other active research effort on developing a model checker (called MPI SPIN) for MPI programs [6], the following approach is taken: (i) they model MPI library functions in Promela (SPIN’s modeling language), and uses SPIN for verification; (ii) they use the C extension features of SPIN to model advanced features such as non-blocking communication commands. (iii) they require users to manually express their intended MPI C program in MPI SPIN
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations and Relaxed Orderings
Sarvani Vakkalanka,Ganesh Gopalakrishnan,Robert M. Kirby +2 more
- 07 Jul 2008
TL;DR: This is the first dynamic model-checking algorithm with reductions for (a large subset of) MPI that guarantees to catch all deadlocks and local assertion violations, and is found to work well in practice.
MPI runtime error detection with MUST: advances in deadlock detection
Tobias Hilbrich,Joachim Protze,Martin Schulz,Bronis R. de Supinski,Matthias S. Müller +4 more
- 10 Nov 2012
TL;DR: The Marmot Umpire Scalable Tool (MUST) is presented that detects such errors with significantly increased scalability and improvements to the graph-based deadlock detection approach for MPI are presented, which cover future MPI extensions.
MUST: A Scalable Approach to Runtime Error Detection in MPI Programs
Tobias Hilbrich,Martin Schulz,Bronis R. de Supinski,Matthias S. Müller +3 more
- 24 Mar 2010
TL;DR: A novel framework for scalable MPI correctness tools to address this need, which uses P n MPI to instantiate a tool from a set of individual modules and allows correctness tools built upon it to adapt to different architectures and use cases.
Efficient data race detection for distributed memory parallel programs
Chang-Seo Park,Koushik Sen,Paul Hargrove,Costin Iancu +3 more
- 12 Nov 2011
TL;DR: The framework for the UPC programming language is implemented and scalability up to a thousand cores for programs with both fine-grained and bulk (MPI style) communication and single- and split-phase barriers is demonstrated.
48
TASS: The Toolkit for Accurate Scientific Software
TL;DR: The Toolkit for Accurate Scientific Software (TASS) is a suite of integrated tools for the formal verification of programs used in computational science, including numerically-intensive message-passing-based parallel programs.
44
References
Model checking nonblocking MPI programs
Stephen F. Siegel
- 14 Jan 2007
TL;DR: A way to apply model checking techniques to parallel programs that use the nonblocking primitives of the Message Passing Interface (MPI) as an extension to the model checker Spin called Mpi-Spin.
Distributed dynamic partial order reduction based verification of threaded software
Yu Yang,Xiaofang Chen,Ganesh Gopalakrishnan,Robert M. Kirby +3 more
- 01 Jul 2007
TL;DR: A distributed version of inspect is described, which implements an extended DPOR algorithm, a practical algorithm for distributed dynamic partial order reduction, and the innovations that helped distributed inspect attain nearly linear speedup on realistic examples.
63
Semantics driven dynamic partial-order reduction of MPI-based parallel programs
Robert Palmer,Ganesh Gopalakrishnan,Robert M. Kirby +2 more
- 09 Jul 2007
TL;DR: This work describes, for the first time, the exact dependencies between MPI non-blocking send operations and their tests for completion, namely wait and test, and shows that Flanagan and Godefroid's dynamic patial-order reduction algorithm offers a natural way to handle the need for future information.
Improving distributed memory applications testing by message perturbation
Richard Vuduc,Martin Schulz,Daniel J. Quinlan,Bronis R. de Supinski,Andreas Saebjornsen +4 more
- 17 Jul 2006
TL;DR: P perturbation techniques that cause the manifestation of timing-related bugs in distributed memory Message Passing Interface (MPI)-based applications are presented and it is shown that these techniques aid testing for problems that are often not easily reproduced when running on small fractions of the machine.
Formal verification of programs that use MPI one-sided communication
TL;DR: It is shown that MPI-based programming, especially the tricky and relatively poorly understood one-sided communication features, stand to gain immensely from model checking, and that the MPI community can benefit greatly from the use of formal verification.
Related Papers (5)
Bettina Krammer,Katrin Bidmon,Matthias S. Müller,Michael Resch +3 more
- 01 Jan 2004
Stephen F. Siegel
- 14 Jan 2007