OCR Text |
Show VERIFICATION OF MPI PROGRAMS USING SPIN Steven Barrus, (Ganesh Gopalakrishnan, Mike Kirby, Robert Palmer), School of Computing, University of Utah Verification of distributed systems is a complex yet important process. Concurrent systems are vulnerable to problems such as deadlock, starvation, and race conditions. Parallel programs written using the MPI (Message Passing Interface) Standard are no exception. The MPI Standard provides a powerful way to construct parallel programs, but fails to provide a way to verify these programs. However, the Spin tool can be used to formally verify a parallel program if it is given an accurate model written in Spin's process meta language (Promela). In this paper, we describe a generalized framework for verification of MPI-based parallel programs using the Spin model checker. Only select MPI calls are covered, but this framework could potentially be extended to include all of the MPI Standard. Our reduced MPI implementation (written in Promela) is designed to follow the MPI Standard as well as allow for any ambiguities in the standard (like buffering). We also present a few examples to illustrate the use of our MPI implementation in Promela. Steven Barrus Computer Science Faculty Sponsor Ganesh Gopalakrishnan Faculty Sponsor Mike Kirby Faculty Sponsor Robert Palmer |