Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs
Vojtĕch Forejt,Daniel Kroening,Ganesh Narayanaswamy,Subodh Sharma +3 more
- 12 May 2014
- pp 263-278
TL;DR: This paper shows that if an MPI program is single-path, the problem of discovering communication deadlocks is NP-complete, and presents a novel propositional encoding scheme which captures the existence of communication deadlock.
read more
Abstract: The Message Passing Interface MPI is the standard API for high-performance and scientific computing. Communication deadlocks are a frequent problem in MPI programs, and this paper addresses the problem of discovering such deadlocks. We begin by showing that if an MPI program is single-path, the problem of discovering communication deadlocks is NP-complete. We then present a novel propositional encoding scheme which captures the existence of communication deadlocks. The encoding is based on modelling executions with partial orders, and implemented in a tool called MOPPER. The tool executes an MPI program, collects the trace, builds a formula from the trace using the propositional encoding scheme, and checks its satisfiability. Finally, we present experimental results that quantify the benefit of the approach in comparison to a dynamic analyser and demonstrate that it offers a scalable solution.
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
Figures
Citations
Protocol-based verification of message-passing parallel programs
Hugo A. López,Eduardo R. B. Marques,Francisco Martins,Nicholas Ng,César Santos,Vasco T. Vasconcelos,Nobuko Yoshida +6 more
- 23 Oct 2015
TL;DR: ParTypes, a type-based methodology for the verification of Message Passing Interface (MPI) programs written in the C programming language, is presented, to statically verify programs against protocol specifications, enforcing properties such as fidelity and absence of deadlocks.
Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs
TL;DR: This article shows that if an MPI program is single path, the problem of discovering communication deadlocks is NP-complete, and presents a novel propositional encoding scheme that captures the existence of communication deadlock.
47
MPISE: Symbolic Execution of MPI Programs
Xianjin Fu,Zhenbang Chen,Yufeng Zhang,Chun Huang,Wei Dong,Ji Wang +5 more
- 08 Jan 2015
TL;DR: This paper employs symbolic execution to ensure the input coverage, and proposes an on-the-fly schedule algorithm to reduce the interleaving explorations for non-determinism coverage, while ensuring the soundness and completeness.
Verification of MPI programs using CIVL
Ziqing Luo,Manchun Zheng,Stephen F. Siegel +2 more
- 25 Sep 2017
TL;DR: The result is a verifier that can check, within finite bounds, a number of difficult properties of MPI programs, including functional correctness, deadlock-freedom, and adherence to rules specified in the MPI Standard.
26
Dynamic Symbolic Verification of MPI Programs
Dhriti Khanna,Subodh Sharma,César Rodríguez,Rahul Purandare +3 more
- 15 Jul 2018
TL;DR: This work provides a hybrid verification technique for message passing programs that combines explicit-state dynamic verification with symbolic analysis that performs significantly better than the state-of-the-art verification tools for multi-path MPI programs.
21
References
An Extensible SAT-solver
Niklas Een,Niklas Sörensson +1 more
- 05 May 2003
TL;DR: This article presents a small, complete, and efficient SAT-solver in the style of conflict-driven learning, as exemplified by Chaff, and includes among other things a mechanism for adding arbitrary boolean constraints.
A Tool for Checking ANSI-C Programs
Edmund M. Clarke,Daniel Kroening,Flavio Lerda +2 more
- 29 Mar 2004
TL;DR: The tool supports almost all ANSI-C language features, including pointer constructs, dynamic memory allocation, recursion, and the float and double data types, and is integrated into a graphical user interface.
Efficient CNF encoding of Boolean cardinality constraints
Olivier Bailleux,Yacine Boufkhad +1 more
- 29 Sep 2003
TL;DR: The proposed encoding into CNF clauses of Boolean cardinality constraints that arise in many practical applications is efficient with respect to unit propagation, which is implemented in almost all complete CNF satisfiability solvers.
343
MARMOT: An MPI analysis and checking tool
Bettina Krammer,Katrin Bidmon,Matthias S. Müller,Michael Resch +3 more
- 01 Jan 2004
TL;DR: The idea of MARMOT is to verify the standard conformance of an MPI program automatically during runtime and help to debug the program in case of problems, and the benchmarks results show that for applications with a reasonable communication to computation ratio, the overhead of using MARMOTS is below 20%–50% on up to 16 processors.
Symbolic Predictive Analysis for Concurrent Programs
Chao Wang,Sudipta Kundu,Malay K. Ganai,Aarti Gupta +3 more
- 04 Nov 2009
TL;DR: A new symbolic causal model based on source code and the observed events is introduced, and a symbolic algorithm to check whether a safety property holds in all feasible permutations of events in the given execution trace is proposed.
117


