Support for Debugging Automatically Parallelized Programs
Robert Hood, Gabriele Jost
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 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.
Create a lesson
Related papers
MCP-Eco: A Linked Dataset of MCP Servers, Consumers, and Development Activity
Khalid Tounoussi, Mohammed Sayagh, Ali Ouni et al.
GH-AWTrace: A Large-Scale Dataset of GitHub Agentic Workflow Execution Logs
Jasem Khelifi, Hao Li, Ali Ouni et al.
Rethinking Access Control for AI Agents: Recent Advances and Open Challenges
Chijin Zhou, Quan Zhang
AgentTrustCI: Build-Time Policy, Grounding, and Trajectory Tests for Java LLM Agents
Sachin Gupta
PatchCon: Patch-aware Weighted Supervised Contrastive Learning for Vulnerability Detection
Chaomeng Lu, Pooya Rostami Mazrae, Bert Lagaisse
EPISTEME: Trustworthy Coding Agents Through Tool Call Intent
Sofia Bobadilla, Carmine Cesarano, Raphina Liu et al.