Debugging Parallel Programs with Instant Replay
IEEE Transactions on Computers
A practical algorithm for static analysis of parallel programs
Journal of Parallel and Distributed Computing
Automatic detection of nondeterminacy in parallel programs
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Partial orders for parallel debugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Event synchronization analysis for debugging parallel programs
Proceedings of the 1989 ACM/IEEE conference on Supercomputing
An empirical comparison of monitoring algorithms for access anomaly detection
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Analysis of event synchronization in a parallel programming tool
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Improving the accuracy of data race detection
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Race Frontier: reproducing data races in parallel-program debugging
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
TRACEVIEWER: A GRAPHICAL BROWSER FOR TRACE ANALYSIS
TRACEVIEWER: A GRAPHICAL BROWSER FOR TRACE ANALYSIS
DEBUGGING PARALLEL PROGRAMS BY TRACE ANALYSIS (M.S. Thesis)
DEBUGGING PARALLEL PROGRAMS BY TRACE ANALYSIS (M.S. Thesis)
Nondeterminancy: testing and debugging in message passing parallel programs
PADD '93 Proceedings of the 1993 ACM/ONR workshop on Parallel and distributed debugging
Dynamic software testing of MPI applications with umpire
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Logical Clock Requirements for Reverse Engineering Scenarios from a Distributed System
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
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.