[论文解读] Support for Debugging Automatically Parallelized Programs
本文提出了一种调试系统,通过使用相对调试比较串行与并行执行,简化了自动并行化程序中错误的识别。该系统利用并行化工具的元数据和动态插桩技术,最小化用户工作量,并在细粒度上检测差异,显著降低了调试开销,同时隔离了由并行化引入的故障。
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.
研究动机与目标
- 减少使用自动并行化工具生成的程序进行调试的复杂性和工作量。
- 通过比较串行与并行执行,隔离并行化过程中引入的故障。
- 通过利用并行化工具的元数据和动态插桩技术,最小化用户参与。
- 仅在检测到执行差异时进行细粒度的执行比较,从而降低运行时开销。
提出的方法
- 该系统使用相对调试技术,比较程序串行版本与并行版本的执行轨迹。
- 它依赖于并行化工具提供的元数据,识别被修改的变量以及跨进程的数组分布情况。
- 采用动态插桩技术,在无需重新编译的情况下修改程序行为,从而实现实时比较。
- 系统仅在检测到执行路径出现分歧时才调用调试器,从而降低开销。
- 执行比较以细粒度方式进行,重点关注变量状态和控制流的差异。
- 该方法与现有编译和调试工具集成,以保持可用性并确保工具链兼容性。
实验结果
研究问题
- RQ1如何在确保故障准确定位的前提下,最小化自动并行化程序的调试工作量?
- RQ2并行化工具的元数据在引导调试过程方面起到什么作用?
- RQ3动态插桩如何支持串行与并行执行之间的高效、细粒度比较?
- RQ4与传统调试相比,相对调试在隔离并行化引入的错误方面有哪些改进?
- RQ5是否可以通过仅在实际出现分歧的执行点才引入调试器,来降低插桩的开销?
主要发现
- 该系统通过比较串行与并行执行,成功隔离了由并行化引入的错误,前提是原始串行代码是正确的。
- 利用并行化工具提供的元数据,显著减少了调试过程中对用户手动输入的需求。
- 动态插桩支持对可执行文件的非侵入式修改,同时保留了用户的构建流程。
- 通过仅在检测到实际差异时才引入调试器,该系统有效降低了调试开销。
- 细粒度比较使得分歧点能够被精确定位,从而提高了故障诊断效率。
- 该方法在实际调试环境中具有可行性,已在AADEBUG 2000研讨会中得到验证。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。