paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs

精确预测分析:发现 MPI 程序中的通信死锁
TOPLAS 39(4)2017匹配度 2/10 · 该论文属于程序验证/静态分析领域,研究 MPI 程序通信死锁检测,但未涉及用户核心关注的 LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析。其偏序编码与工具实现虽有工程价值,但与研究方向交叉点很少。引用 68 inbox
Vojtǎch Forejt, Saurabh Joshi, Daniel Kroening, Ganesh Narayanaswamy, Subodh Sharma
dblp: 2026-09-10crossref: 2026-09-10

AI 速览

一句话:提出基于偏序与命题编码的 MPI 通信死锁预测分析方法,并实现 MOPPER 工具,可扩展地检测单路径程序死锁。

MPI 是高性能与科学计算中的标准并行 API,通信死锁是其程序常见问题。本文研究如何发现此类死锁。作者首先证明,若 MPI 程序只有单一路径,发现通信死锁属于 NP 完全问题;随后提出一种新的命题编码,用偏序建模执行并刻画通信死锁的存在性。该编码实现于工具 MOPPER 中:它执行 MPI 程序、收集轨迹、由轨迹构造公式并检查可满足性。实验与其他分析器对比,量化了方法的收益,并表明其对单路径程序具有可扩展性。

问题
如何精确且可扩展地发现 MPI 程序中的通信死锁,尤其是单路径 MPI 程序中的死锁发现问题。
方法
将执行建模为偏序,给出捕捉通信死锁存在性的命题编码;实现 MOPPER,执行程序收集 trace,生成公式并用 SAT 检查可满足性。
评估
通过实验与其他分析器比较,量化方法收益,并证明对单路径程序具有可扩展性。
原文摘要(Abstract)

The Message Passing Interface (MPI) is the standard API for parallelization in high-performance and scientific computing. Communication deadlocks are a frequent problem in MPI programs, and this article addresses the problem of discovering such deadlocks. We begin by showing that if an MPI program is single path, the problem of discovering communication deadlocks is NP-complete. We then present a novel propositional encoding scheme that captures the existence of communication deadlocks. The encoding is based on modeling executions with partial orders and implemented in a tool called MOPPER . The tool executes an MPI program, collects the trace, builds a formula from the trace using the propositional encoding scheme, and checks its satisfiability. Finally, we present experimental results that quantify the benefit of the approach in comparison to other analyzers and demonstrate that it offers a scalable solution for single-path programs.

链接与引用

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

BibTeX
@article{ForejtKNS14,
  title = {Precise Predictive Analysis for Discovering Communication Deadlocks in MPI Programs},
  author = {Vojtǎch Forejt and Saurabh Joshi and Daniel Kroening and Ganesh Narayanaswamy and Subodh Sharma},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {39},
  number = {4},
  year = {2017},
  doi = {10.1145/3095075}
}