Implementing Efficient Dynamic Formal Verification Methods for MPI Programs

  • Authors:
  • Sarvani Vakkalanka;Michael Delisi;Ganesh Gopalakrishnan;Robert M. Kirby;Rajeev Thakur;William Gropp

  • Affiliations:
  • School of Computing, Univ. of Utah, Salt Lake City, USA UT 84112;School of Computing, Univ. of Utah, Salt Lake City, USA UT 84112;School of Computing, Univ. of Utah, Salt Lake City, USA UT 84112;School of Computing, Univ. of Utah, Salt Lake City, USA UT 84112;Math. and Comp. Sci. Div., Argonne Nat. Lab., Argonne, USA IL 60439;Dept. of Computer Sci., Univ. of Illinois, Urbana, Illinois, USA 61801

  • Venue:
  • Proceedings of the 15th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We examine the problem of formally verifying MPI programs for safety properties through an efficient dynamic (runtime) method in which the processes of a given MPI program are executed under the control of an interleaving scheduler. To ensure full coverage for given input test data, the algorithm must take into consideration MPI's out-of-order completion semantics. The algorithm must also ensure that nondeterministic constructs (e.g., MPI wildcard receive matches) are executed in all possible ways. Our new algorithm rewrites wildcard receives to specific receives, one for eachsender that can potentially match with the receive. It then recursively explores each case of the specific receives. The list of potential senders matching a receive is determined through a runtime algorithm that exploits MPI's operation ordering semantics. Our verification tool ISP that incorporates this algorithm efficiently verifies several programs and finds bugs missed by existing informal verification tools.