Skip to main content
QUICK REVIEW

[论文解读] Non-intrusive on-the-fly data race detection using execution replay

Michiel Ronsse, Koenraad De Bosschere|ArXiv.org|Nov 6, 2000
Parallel Computing and Optimization Techniques参考文献 23被引用 24
一句话总结

本文提出 RecPlay,一种非侵入式、实时的数据竞争检测系统,适用于并行程序。该系统利用执行重放与多级位图结合侦测矩阵时钟技术,最大限度降低内存开销。通过实现无需性能下降的持续追踪,消除了海森堡错误(Heisenbugs),并可在无代码修改或重新编译的情况下,真实检测 SPLASH-2 和 Athapascan 等实际应用中的真实数据竞争。

ABSTRACT

This paper presents a practical solution for detecting data races in parallel programs. The solution consists of a combination of execution replay (RecPlay) with automatic on-the-fly data race detection. This combination enables us to perform the data race detection on an unaltered execution (almost no probe effect). Furthermore, the usage of multilevel bitmaps and snooped matrix clocks limits the amount of memory used. As the record phase of RecPlay is highly efficient, there is no need to switch it off, hereby eliminating the possibility of Heisenbugs because tracing can be left on all the time.

研究动机与目标

  • 解决在不引入探测效应或修改代码的前提下检测并行程序中数据竞争的挑战。
  • 通过在整个程序执行过程中实现持续、非侵入式追踪,消除海森堡错误。
  • 通过使用多级位图与侦测矩阵时钟,降低数据竞争检测中的内存开销。
  • 为共享内存系统中真实世界并行应用提供一种实用且可扩展的数据竞争检测解决方案。
  • 展示执行重放在生产环境中实现实时数据竞争检测的有效性。

提出的方法

  • 使用执行重放(RecPlay)技术,在不修改应用程序的前提下记录并重放程序执行。
  • 采用多级位图以紧凑方式表示内存访问模式,降低存储开销。
  • 应用侦测矩阵时钟,高效追踪跨线程内存访问之间的因果关系。
  • 在重放过程中通过分析访问顺序与共享内存冲突,实现在线数据竞争检测。
  • 利用拉姆波特的逻辑时间模型,确保分布式执行轨迹中事件的正确排序。
  • 通过在二进制级别运行,避免重新编译或重新链接,对应用程序完全透明。

实验结果

研究问题

  • RQ1是否可以在未经修改的程序上实现数据竞争检测,且性能影响极小?
  • RQ2如何在保持准确性的前提下最小化数据竞争检测中的内存开销?
  • RQ3是否可以持续追踪而不会引入探测效应或海森堡错误?
  • RQ4执行重放在实现实时数据竞争检测方面在真实并行应用中的有效性如何?
  • RQ5重放与高效计时机制的结合是否能检测出复杂基准测试中的真实数据竞争?

主要发现

  • RecPlay 成功检测到 SPLASH-2 基准测试套件和 Athapascan 并行编程系统中的真实数据竞争。
  • 该系统无需重新编译或重新链接,对应用程序保持完全透明。
  • 使用多级位图与侦测矩阵时钟显著降低了追踪记录与重放过程中的内存使用量。
  • 由于记录阶段效率极高,持续追踪成为可能,无需关闭追踪,从而避免了海森堡错误。
  • 该方法实现了极低探测效应的在线检测,使生产环境下的可靠检测成为可能。
  • 该方法能有效区分数据竞争与有意的同步竞争,仅关注非预期的竞争条件。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。