Abstract

Data races in distributed parallel programs, such as those developed with the message passing interface (MPI), can cause critical correctness and reliability issues. Therefore, it is highly necessary to detect and fix them. However, existing MPI programming error detection tools have rather limited support for data race detection. To address this problem, we present MPIRace, which is a static data race detector for MPI programs. It creates several novel and effective static program analysis techniques to overcome the technical challenges of conducting static data race detection for MPI programs. We also implement a research prototype of MPIRace based on LLVM, a widely-used compiler infrastructure. After applying MPIRace to MPI-CorrBench, a recent MPI correctness benchmark suite, and a broad range of real-world MPI applications, we successfully find 20 data races. Among them, 12 are found in the real-world MPI applications and it is the first time they are reported by a data race detector. Moreover, the detection speed of MPIRace is extremely fast, i.e., less than one minute for every evaluated application. We believe MPIRace will tremendously help developers in improving the correctness, reliability, and sustainability of MPI programs.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call