Parallel Shadow Execution to Accelerate the Debugging of Numerical Errors

Parallel Shadow Execution to Accelerate the Debugging of Numerical Errors
复制标题

并行影子执行加速数值错误的调试

DOI:
10.1145/3468264.3468585
复制
发表时间:
2021
期刊:
2021 The ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE
影响因子:
--
通讯作者:
Nagarakatte, Santosh
Nagarakatte, Santosh
中科院分区:
--
文献类型:
--
作者:
Chowdhary, Sangeeta;Nagarakatte, Santosh

文献摘要

相似文献

本文提出了一种通过并行执行高精度影子执行来调试浮点计算错误的新方法。程序员指定程序中需要调试错误的部分。我们的编译器创建了影子执行任务,这些任务在不同的内核上执行,并以更高的精度执行计算。我们提出了一种新的方法来从任意内存状态执行影子执行任务,这是必要的,因为我们正在从顺序程序创建并行影子执行。我们的方法还确保影子执行遵循与原始程序相同的控制流路径。我们的运行时自动分配影子执行任务,以平衡内核上的负载。我们的并行影子执行原型PFP Saniizer提供了全面的错误检测,同时具有比以前的方法更低的性能开销。
This paper proposes a new approach for debugging errors in floating point computation by performing shadow execution with higher precision in parallel. The programmer specifies parts of the program that need to be debugged for errors. Our compiler creates shadow execution tasks, which execute on different cores and perform the computation with higher precision. We propose a novel method to execute a shadow execution task from an arbitrary memory state, which is necessary because we are creating a parallel shadow execution from a sequential program. Our approach also ensures that the shadow execution follows the same control flow path as the original program. Our runtime automatically distributes the shadow execution tasks to balance the load on the cores. Our prototype for parallel shadow execution, PFPSanitizer, provides comprehensive detection of errors while having lower performance overheads than prior approaches.