paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Deterministic parallel fixpoint computation

确定性并行不动点计算
POPL 4(POPL)2019匹配度 5/10 · 论文提出 WPO 与确定性并行不动点算法,属于抽象解释/静态分析的基础性工作,兼具理论形式化与工程实现(Pikos/IKOS),但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,与当前研究画像中的交叉方向直接匹配有限。引用 9 inbox
Sung Kook Kim, Arnaud J. Venet, Aditya V. Thakur
crossref: 2026-09-10

AI 速览

一句话:提出弱偏序 WPO 与确定性并行不动点算法,并通过 Pikos 在抽象解释中获得显著加速。

抽象解释将静态程序分析归约为逼近方程组的最小不动点计算,现有主流方法采用基于弱拓扑序(WTO)的顺序算法。本文提出弱偏序(WPO)概念,旨在实现确定性的并行不动点计算,并给出几乎线性时间的 WPO 构造算法。作者实现了 Pikos——顺序抽象解释器 IKOS 的确定性并行扩展。在 1017 个 C 程序上的评估表明:使用 4 核时相对 IKOS 平均加速 2.06 倍、最高 3.63 倍;使用 16 核时最高加速 10.97 倍。这表明 WPO 能在保持确定性的同时有效提升抽象解释的并行可扩展性。

问题
抽象解释通常依赖基于弱拓扑序(WTO)的顺序算法计算最小不动点,难以利用多核并行性。
方法
本文引入弱偏序(WPO),给出几乎线性时间的构造算法,并实现确定性并行抽象解释器 Pikos。
评估
在 1017 个 C 程序上与 IKOS 对比,4 核平均加速 2.06 倍,16 核最高加速 10.97 倍。
原文摘要(Abstract)

Abstract interpretation is a general framework for expressing static program analyses. It reduces the problem of extracting properties of a program to computing an approximation of the least fixpoint of a system of equations. The de facto approach for computing this approximation uses a sequential algorithm based on weak topological order (WTO). This paper presents a deterministic parallel algorithm for fixpoint computation by introducing the notion of weak partial order (WPO). We present an algorithm for constructing a WPO in almost-linear time. Finally, we describe Pikos, our deterministic parallel abstract interpreter, which extends the sequential abstract interpreter IKOS. We evaluate the performance and scalability of Pikos on a suite of 1017 C programs. When using 4 cores, Pikos achieves an average speedup of 2.06x over IKOS, with a maximum speedup of 3.63x. When using 16 cores, Pikos achieves a maximum speedup of 10.97x.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot546,
  title = {Deterministic parallel fixpoint computation},
  author = {Sung Kook Kim and Arnaud J. Venet and Aditya V. Thakur},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {4},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3371082}
}