Support for Debugging Automatically Parallelized Programs
Robert Hood, Gabriele Jost

TL;DR
This paper presents a debugging system that simplifies identifying errors in automatically parallelized programs by comparing serial and parallel executions, leveraging dynamic instrumentation and information from parallelization tools.
Contribution
The system uniquely integrates relative debugging with dynamic instrumentation and parallelization tool data to efficiently detect parallelization errors with minimal user effort.
Findings
Effective identification of parallelization errors
Reduced debugging effort through automation
Low overhead due to dynamic instrumentation
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Parallel Computing and Optimization Techniques · Software System Performance and Reliability
