paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Parallel shadow execution to accelerate the debugging of numerical errors

并行影子执行加速数值误差的调试
FSE Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2021匹配度 6/10 · 该论文直接面向浮点程序错误的调试与动态分析,属于用户研究画像中“浮点程序分析”这一方向,并提供了工具原型与性能评估。但它不涉及静态分析、LLM/Agent 或贝叶斯程序分析,与用户当前最核心的交叉方向只有部分匹配。引用 19 inbox
Sangeeta Chowdhary, Santosh Nagarakatte
crossref: 2026-09-12

AI 速览

一句话:提出并行影子执行方法,用多核以更高精度模拟浮点计算,从而高效调试数值误差。

浮点计算中的数值误差往往难以察觉和调试。本文提出一种并行影子执行方法:程序员指定需要调试的程序片段,编译器据此生成影子执行任务,这些任务在不同核心上以更高精度重新计算。由于影子执行源自顺序程序,作者提出一种从任意内存状态开始执行影子任务的新技术,并保证影子执行遵循与原程序相同的控制流路径。运行时系统自动分配影子任务以平衡各核负载。原型工具 PFPSanitizer 能够全面检测数值错误,且性能开销低于已有方法。

问题
浮点计算中的数值误差难以检测与调试,现有高精度影子执行方法性能开销较大。
方法
通过编译器生成以更高精度执行的影子任务,在多个核心上并行运行;提出从任意内存状态启动影子任务并保持与原程序相同控制流的方法,运行时自动进行负载均衡。
评估
实现原型 PFPSanitizer,与已有方法对比,能更全面检测数值错误且性能开销更低。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot6399,
  title = {Parallel shadow execution to accelerate the debugging of numerical errors},
  author = {Sangeeta Chowdhary and Santosh Nagarakatte},
  booktitle = {FSE},
  year = {2021},
  doi = {10.1145/3468264.3468585}
}