Detecting Race Conditions in One-Sided Communication of MPI Programs

While one-sided communication introduced in MPI-2 is convenient to access remote memory, it is easier for programmers to make serious errors such as race conditions. Although there are several tools for detecting race conditions in MPI programs, these tools do not provide any mechanism to detect race conditions occurring in one-sided communication. In this paper, we present a technique to detect race conditions caused by unsafe accesses of one-sided operations. Our technique creates a mirror window whenever a process creates a window memory for one-sided communication, and uses it to monitor and detect race conditions. Whenever any one-sided operation accesses a window memory, the corresponding mirror window will be marked and checked to see if the window memory is unsafely accessed by any concurrent operation. In our experiment, we evaluate our technique using two public benchmark programs, and the results show that our technique can precisely detect race conditions. Therefore our technique is effective to detect race conditions in MPI programs and helpful to develop reliable parallel programs.

[1]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[2]  William Gropp,et al.  Mpi - The Complete Reference: Volume 2, the Mpi Extensions , 1998 .

[3]  Robert H. B. Netzer,et al.  Debugging race conditions in message-passing programs , 1996, SPDT '96.

[4]  Yong-Kee Jun,et al.  MPIRace-Check: Detection of Message Races in MPI Programs , 2007, GPC.

[5]  Michael M. Resch,et al.  Correctness Checking of MPI One-Sided Communication Using Marmot , 2006, PVM/MPI.

[6]  William Gropp,et al.  User's Guide for mpich, a Portable Implementation of MPI Version 1.2.2 , 1996 .

[7]  Yu Lei,et al.  Efficient reachability testing of asynchronous message-passing programs , 2002, Eighth IEEE International Conference on Engineering of Complex Computer Systems, 2002. Proceedings..

[8]  Josep Torrellas,et al.  Accurate and efficient filtering for the Intel thread checker race detector , 2006, ASID '06.

[9]  William Gropp,et al.  MPI: The Complete Reference , Vol. 2 - The MPI-2 Extensions , 1998 .

[10]  Victor Samofalov,et al.  Automated Correctness Analysis of MPI Programs with Intel(r) Message Checker , 2005, PARCO.

[11]  Michael M. Resch,et al.  MPI Application Development Using the Analysis Tool MARMOT , 2004, International Conference on Computational Science.

[12]  Martin Schulz,et al.  Notes on Nondeterminism in Message Passing Programs , 2002, PVM/MPI.

[13]  Yong-Kee Jun,et al.  Detecting Unaffected Message Races in Parallel Programs , 2006, GPC.

[14]  Carl Kesselman,et al.  Generalized communicators in the Message Passing Interface , 1996, Proceedings. Second MPI Developer's Conference.

[15]  Dieter Kranzlmüller,et al.  A Brief Overview of the MAD Debugging Activities , 2000, AADEBUG.