| | |
Summary: ANALYSIS OF MPI PROGRAMS
STEPHEN F. SIEGEL AND GEORGE S. AVRUNIN
Abstract. We investigate the application of formal verification techniques to
parallel programs which employ the Message Passing Interface (MPI). We de-
velop a formal model of a subset of MPI, and then prove a number of theorems
about that model which ameliorate or eliminate altogether the state explosion
problem. As an example, we show that if one wishes to verify freedom from
deadlock, it suffices to consider only synchronous executions.
1. Introduction
Message Passing is a widely-used paradigm for the communication between pro-
cesses in a parallel or distributed system. The basic ideas have been around since
the late 1960s, and by the early 1990s, several different and incompatible message-
passing systems were being used to develop significant applications. The desire for
portability and a recognized standard led to the creation of the Message Passing
Interface (MPI), which defines the precise syntax and semantics for a library of
functions for writing message-passing programs in a language such as C or Fortran
(see [2] and [4]). Since that time, MPI has become widely adapted, with proprietary
and open-source implementations available on almost any platform.
Developers of programs which use MPI have run into many of the problems
typically encountered with concurrent programs. Programs deadlock; they behave
|