To parallelize or not to parallelize, bugs issue
Alaa I. El-Nashar, Nakamura Masaki

TL;DR
This paper discusses common bugs in MPI parallel programs, proposes an algebraic specification for a simplified MPI language called SMPI, and verifies nondeterminacy and deadlocks using the Maud system.
Contribution
It introduces SMPI, an algebraic specification for MPI-like programs, and applies formal verification to analyze nondeterminacy and deadlocks.
Findings
Identification of common MPI bugs
Formal verification of nondeterminacy in SMPI
Detection of deadlocks in SMPI programs
Abstract
Program correctness is one of the most difficult challenges in parallel programming. Message Passing Interface MPI is widely used in writing parallel applications. Since MPI is not a compiled language, the programmer will be enfaced with several programming bugs.This paper presents the most common programming bugs arise in MPI programs to help the programmer to compromise between the advantage of parallelism and the extra effort needed to detect and fix such bugs. An algebraic specification of an MPI-like programming language, called Simple MPI (SMPI), to be used in writing MPI programs specification has also been proposed. In addition, both nondeterminacy and deadlocks arise in SMPI programs have been verified using Maud system.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Advanced Data Storage Technologies
