VSL Publications

Collective Contracts for Message-Passing Parallel Programs

Cite
Ziqing Luo and Stephen F. Siegel. Collective Contracts for Message-Passing Parallel Programs. Computer Aided Verification (CAV 2024), Lecture Notes in Computer Science 14682, Springer, Cham, 2024.
Abstract
Procedure contracts are a well-known approach for specifying programs in a modular way. We investigate a new contract theory for collective procedures in parallel message-passing programs. As in the sequential setting, one can verify that a procedure $f$ conforms to its contract using only the contracts, and not the implementations, of the collective procedures called by $f$. We apply this approach to C programs that use the Message Passing Interface (MPI), introducing a new contract language that extends the ANSI/ISO C Specification Language (ACSL). We present contracts for the standard MPI collective functions, as well as many user-defined collective functions. A prototype verification system has been implemented using the CIVL symbolic execution and model checking framework for checking contract satisfaction within small bounds on the number of processes.
Downloads
  1. mpi_contracts.pdf (extended version)
Related Links
  1. Published version
  2. Experimental artifacts (GitHub)
BibTeX
@inproceedings{luo-siegel:2024:contracts,
  author = {Ziqing Luo and Stephen F.\ Siegel},
  title = {Collective Contracts for Message-Passing Parallel Programs},
  booktitle={Computer Aided Verification (CAV 2024)},
  volume = 14682,
  series = {Lecture Notes in Computer Science},
  publisher = {Springer},
  address = {Cham},
  editor = {Gurfinkel, Arie and Ganesh, Vijay},
  doi = {10.1007/978-3-031-65630-9_3},
  pages = {44--68},
  year = {2024}
}

VSL | Publications