Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Dynamic software testing of MPI applications with umpire
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
MPI-The Complete Reference, Volume 1: The MPI Core
MPI-The Complete Reference, Volume 1: The MPI Core
Dynamic partial-order reduction for model checking software
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modeling wildcard-free MPI programs for verification
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Automated, scalable debugging of MPI programs with Intel® Message Checker
Proceedings of the second international workshop on Software engineering for high performance computing system applications
Improving distributed memory applications testing by message perturbation
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Iterative context bounding for systematic testing of multithreaded programs
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Semantics driven dynamic partial-order reduction of MPI-based parallel programs
Proceedings of the 2007 ACM workshop on Parallel and distributed systems: testing and debugging
Formal specification of the MPI-2.0 standard in TLA+
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
ISP: a tool for model checking MPI programs
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Distributed dynamic partial order reduction based verification of threaded software
Proceedings of the 14th international SPIN conference on Model checking software
An approach to formalization and analysis of message passing libraries
FMICS'07 Proceedings of the 12th international conference on Formal methods for industrial critical systems
Efficient verification of halting properties for MPI programs with wildcard receives
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Practical model-checking method for verifying correctness of MPI programs
PVM/MPI'07 Proceedings of the 14th European conference on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Scheduling considerations for building dynamic verification tools for MPI
PADTAD '08 Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging
Implementing Efficient Dynamic Formal Verification Methods for MPI Programs
Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
A Formal Approach to Detect Functionally Irrelevant Barriers in MPI Programs
Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Analyzing BlobFlow: A Case Study Using Model Checking to Verify Parallel Scientific Software
Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
How Formal Dynamic Verification Tools Facilitate Novel Concurrency Visualizations
Proceedings of the 16th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Sound and Efficient Dynamic Verification of MPI Programs with Probe Non-determinism
Proceedings of the 16th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Static-Analysis Assisted Dynamic Verification of MPI Waitany Programs (Poster Abstract)
Proceedings of the 16th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Reduced Execution Semantics of MPI: From Theory to Practice
FM '09 Proceedings of the 2nd World Congress on Formal Methods
GEM: graphical explorer of MPI programs
Proceedings of the 5th international symposium on Software visualization
Top ten ways to make formal methods for HPC practical
Proceedings of the FSE/SDP workshop on Future of software engineering research
A Scalable and Distributed Dynamic Formal Verifier for MPI Programs
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
Precise dynamic analysis for slack elasticity: adding buffering without adding bugs
EuroMPI'10 Proceedings of the 17th European MPI users' group meeting conference on Recent advances in the message passing interface
Dynamic verification of hybrid programs
EuroMPI'10 Proceedings of the 17th European MPI users' group meeting conference on Recent advances in the message passing interface
Formal analysis of message passing
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
Evaluating ordering heuristics for dynamic partial-order reduction techniques
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Modeling asynchronous message passing for c programs
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
TransDPOR: a novel dynamic partial-order reduction technique for testing actor programs
FMOODS'12/FORTE'12 Proceedings of the 14th joint IFIP WG 6.1 international conference and Proceedings of the 32nd IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
A sound reduction of persistent-sets for deadlock detection in MPI applications
SBMF'12 Proceedings of the 15th Brazilian conference on Formal Methods: foundations and applications
Static analysis of concurrent programs by adapted vector clock
Proceedings of the International C* Conference on Computer Science and Software Engineering
Distributed wait state tracking for runtime MPI deadlock detection
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
JPF verification of habanero Java programs
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
Dynamic verification methods are the natural choice for debugging real world programs when model extraction and maintenance are expensive. Message passing programs written using the MPI library fall under this category. Partial order reduction can be very effective for MPI programs because for each process, all its local computational steps, as well as many of its MPI calls, commute with the corresponding steps of all other processes. However, when dependencies arise among MPI calls, they are often a function of the runtime state. While this suggests the use of dynamic partial order reduction (DPOR), three aspects of MPI make previous DPOR algorithms inapplicable: (i) many MPI calls are allowed to complete out of program order; (ii) MPI has global synchronization operations (e.g., barrier) that have a special weak semantics; and (iii) the runtime of MPI cannot, without intrusive modifications, be forced to pursue a specific interleaving because of MPI's liberal message matching rules, especially pertaining to `wildcard receives'. We describe our new dynamic verification algorithm `POE' that exploits the out of order completion semantics of MPI by delaying the issuance of MPI calls, issuing them only according to the formation of match-sets, which are ample `big-step' moves. POE guarantees to manifest any feasible interleaving by dynamically rewriting wildcard receives by specific-source receives. 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.