Detecting data races from sequential traces

David P. Helmbold, Charles E. McDowell, Jianzhong Wang · 2002

One of the fundamental problems encountered when debugging a parallel program is determining the race conditions in the program. This paper presents a tool for automatically detecting data races in parallel programs by analyzing program traces. Given a trace of important events, the authors present a series of algorithms which identify those pairs of events which may have participated in a race condition. The linear event trace is first converted into a partial ordering which reflects one of the possible executions. Other algorithms modify the partial ordering on the events, extracting information common to all of the executions which could have generated the linear trace. This allows one to analyze sets of executions rather than just one specific execution based on the trace information. A working trace analyzer has been implemented for IBM parallel fortran. The trace analyzer can report various data races in parallel programs by finding unordered pairs of events and variable access conflicts.>

Read the paper · More papers on PaperTik