Repository logo
 
No Thumbnail Available
Publication

Protocol-based verification of MPI programs

Use this identifier to reference this record.
Name:Description:Size:Format: 
2014_tr_05.pdf1.78 MBAdobe PDF Download
tr_2015_02.pdf1.78 MBAdobe PDF Download

Advisor(s)

Abstract(s)

We present a methodology for the verification of Message Passing Interface (MPI) programs written in C. The aim is to statically verify programs against protocol specifications, enforcing properties such as fidelity and absence of deadlocks. We make use of a protocol language based on a dependent type system for message-passing parallel programs. % For the verification of a program against a given protocol, the protocol is first translated into a representation read by VCC, a software verifier for the~C programming language. % The program is then annotated with specific assertions that, together with a pre-established set of contracts for MPI primitives, guide the verifier to either prove or disprove the program's conformance to the protocol. We successfully verified MPI programs in a running time that is independent of the number of processes or other input parameters. This contrasts with other techniques, notably model checking and symbolic execution, that suffer from the state-explosion problem. We experimentally evaluated our approach against TASS, a state-of-the-art tool for MPI program verification.

Description

Keywords

protocol parallel programs verification MPI

Pedagogical Context

Citation

Research Projects

Organizational Units

Journal Issue

Publisher

CC License