Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fast breakpoints: design and implementation
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
PVM: a framework for parallel distributed computing
Concurrency: Practice and Experience
Parallel program debugging with on-the-fly anomaly detection
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Source level debugging of automatically parallelized code
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Exploitation of symbolic information in interprocedural dependence analysis
Parallel Computing
The p2d2 project: building a portable distributed debugger
SPDT '96 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Relative debugging: a new methodology for debugging scientific applications
Communications of the ACM
Optimizing Supercompilers for Supercomputers
Optimizing Supercompilers for Supercomputers
A Debugger for Computational Grid Applications
HCW '00 Proceedings of the 9th Heterogeneous Computing Workshop
Implementation Techniques for a Parallel Relative Debugger
PACT '96 Proceedings of the 1996 Conference on Parallel Architectures and Compilation Techniques
Backtracking and Re-Execution in the Automatic Debugging of Parallelized Programs
HPDC '02 Proceedings of the 11th IEEE International Symposium on High Performance Distributed Computing
Hi-index | 0.00 |
We describe a system that simplifies the process of debugging programs produced by computer-aided parallelization tools. The system uses relative debugging techniques to compare serial and parallel executions in order to show where the computations begin to differ. If the original serial code is correct, errors due to parallelization will be isolated by the comparison.One of the primary goals of the system is to minimize the effort required of the user. To that end, the debugging system uses information produced by the parallelization tool to drive the comparison process. In particular, the debugging system relies on the parallelization tool to provide information about where variables may have been modified and how arrays are distributed across multiple processes. User effort is also reduced through the use of dynamic instrumentation. This allows us to modify the program execution without changing the way the user builds the executable. The use of dynamic instrumentation also permits us to compare the executions in a fine-grained fashion and only involve the debugger when a difference has been detected. This reduces the overhead of executing instrumentation.