Towards deductive verification of MPI programs against session types

12/10/2013
by   Eduardo R. B. Marques, et al.
0

The Message Passing Interface (MPI) is the de facto standard message-passing infrastructure for developing parallel applications. Two decades after the first version of the library specification, MPI-based applications are nowadays routinely deployed on super and cluster computers. These applications, written in C or Fortran, exhibit intricate message passing behaviours, making it hard to statically verify important properties such as the absence of deadlocks. Our work builds on session types, a theory for describing protocols that provides for correct-by-construction guarantees in this regard. We annotate MPI primitives and C code with session type contracts, written in the language of a software verifier for C. Annotated code is then checked for correctness with the software verifier. We present preliminary results and discuss the challenges that lie ahead for verifying realistic MPI program compliance against session types.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/25/2018

DMTCP Checkpoint/Restart of MPI Programs via Proxies

MPI accomplishes portable, standardized message-passing between processe...
research
11/23/2021

kmclib: Automated Inference and Verification of Session Types

Theories and tools based on multiparty session types offer correctness g...
research
04/02/2019

A Message-Passing Interpretation of Adjoint Logic

We present a system of session types based on adjoint logic which genera...
research
10/09/2020

CAMP: Cost-Aware Multiparty Session Protocols

This paper presents CAMP, a new static performance analysis framework fo...
research
03/19/2019

MP net as Abstract Model of Communication for Message-passing Applications

MP net is a formal model specifically designed for the field of parallel...
research
12/14/2022

PSTMonitor: Monitor Synthesis from Probabilistic Session Types

We present PSTMonitor, a tool for the run-time verification of quantitat...
research
03/16/2018

Combining Symbolic Execution and Model Checking to Verify MPI Programs

Message Passing Interface (MPI) is the standard paradigm of programming ...

Please sign up or login with your details

Forgot password? Click here to reset