SC20 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

PARCOACH Extension for Static MPI Nonblocking and Persistent Communication Validation


Workshop:Correctness 2020: 4th International Workshop on Software Correctness for HPC Applications

Authors: Van Man Nguyen (Atomic Energy and Alternative Energies Commission (CEA)); Emmanuelle Saillard (French Institute for Research in Computer Science and Automation (INRIA)); Julien Jaeger (Atomic Energy and Alternative Energies Commission (CEA)); Denis Barthou (French Institute for Research in Computer Science and Automation (INRIA), University of Bordeaux); and Patrick Carribault (Atomic Energy and Alternative Energies Commission (CEA))


Abstract: The Message Passing Interface (MPI) is a parallel programming model used to exchange data between working units in different nodes of a supercomputer. While MPI blocking operations return when the communication is complete, nonblocking and persistent operations return before the communication is complete, enabling a developer to hide communication latency. The usage of the latter, however, comes with additional rules by which the user must abide. This is error prone, which makes verification tools valuable for MPI program writers.

PARCOACH is a framework that detects MPI collective errors using a static/dynamic analysis. The static phase studies the control- and data-flow of a program to detect potential errors while the dynamic phase uses compile-time information to verify the potential errors. In this paper we present an extension of PARCOACH static analysis to detect misuse of MPI nonblocking and persistent communications. Our new analysis adds the detection of four new error classes related to these types of communications.





Back to Correctness 2020: 4th International Workshop on Software Correctness for HPC Applications Archive Listing



Back to Full Workshop Archive Listing