Mi-Young Park, Su-Yun Bae, and Yong-Kee Jun
Gyeongsang National University
Chinju, 660-701 South Korea
Email: {park,jun}@race.gsnu.ac.kr
Detecting unaffected race conditions is important to debugging message-passing programs effectively, because such a message race can affect other races to occur or not. The previous technique to detect efficiently unaffected races detects racing messages by halting at the receive event of the first race to occur in each process. However this technique does not guarantee that all of the detected races are unaffected, because halting such processes does disconnect some chain of affects-relations among those races.
In this paper we present a visualization technique to record the relationships of the locally-first races to occur on each process into a trace file until the second pass completes, and to visualize abstractly the relationships of traced races after that execution is terminated. This technique visualizes a set of races with an abstract execution graph representing the affect-relations of races scalably and intuitively. Therefore, this technique is important in debugging message-passing programs, because it helps programmers to discriminate affected races effectively.
We tested our technique in MPI using MPICH implementation, which is an industry-standard model of message-passing parallel program, on a Linux-cluster system which consists of four Compaq-Alpha processor nodes. We implemented our technique as a C-library using MPI Profiling Interface to make it transparent to user programs, and justified its efficiency and accuracy using a set of published benchmark programs. The experimentation results show that the technique incurs overhead only about 1% more in its slowdown than the previous technique.