Issue No. 07 - July (1993 vol. 4)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.238303
<p>One of the fundamental problems encountered when debugging a parallel program isdetermining the possible orders in which events could have occurred. Various problems,such as data races and intermittent deadlock, arise when there is insufficientsynchronization between the tasks in a parallel program. A sequential trace of anexecution can be misleading, as it implies additional event orderings, distorting theconcurrent nature of the computation. Algorithms to generate, from the trace of anexecution, those event orderings that can be relied on by the programmer are described.By its very nature, the information in an execution trace pertains only to that executionof the program, and may not generalize to other executions. This difficulty is mitigated by defining an inferred program based on the trace and original program, analyzing thisinferred program, and showing how the inferred program relates to the original. Theresults of the algorithms can be used by other automated tools such as a data racedetector or constraint checker.</p>
Index Termsevent orders; sequential traces; debugging; parallel program; data races; intermittentdeadlock; synchronization; execution trace; inferred program; automated tools; data racedetector; constraint checker; parallel programming; program debugging; program testing
D. Helmbold, J. Wang and C. McDowell, "Determining Possible Event Orders by Analyzing Sequential Traces," in IEEE Transactions on Parallel & Distributed Systems, vol. 4, no. , pp. 827-840, 1993.