paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Peacenik

Peacenik
ASPLOS Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems2020匹配度 0/10 · 该论文研究fail-stop内存一致性模型的架构支持,属于计算机体系结构与并发内存模型领域,与用户关注的静态分析、LLM/Agent交叉、浮点程序分析或贝叶斯程序分析等方向完全无关。引用 3 inbox
Rui Zhang, Swarnendu Biswas, Vignesh Balaji, Michael D. Bond, Brandon Lucia
crossref: 2026-09-12

AI 速览

一句话:提出 Peacenik 架构支持,在 fail-stop 内存一致性下避免失败,消除其大部分性能开销。

现代共享内存系统对未良好同步的程序会出现错误的未定义行为。fail-stop 内存一致性可为所有程序提供良定义行为,但可能引入意外失败,损害性能或进展。本文提出 Peacenik 架构支持,在 fail-stop 内存一致性语境中避免这些失败。作者将 Peacenik 的通用机制应用于两种提供 fail-stop 一致性的现有架构,并通过基于模拟的评估表明,Peacenik 几乎消除了基线架构因 fail-stop 行为产生的高开销,说明可在不承担大部分或全部代价的情况下获得 fail-stop 一致性的收益。

问题
共享内存程序若未良好同步会出现未定义行为;fail-stop 一致性虽消除未定义行为,却带来意外失败和性能或进展开销。
方法
提出 Peacenik 架构支持,提供通用机制以避免 fail-stop 一致性下的失败,并将其应用于两种现有 fail-stop 一致性架构。
评估
通过基于模拟的评估,与基线架构比较,显示 Peacenik 几乎消除了 fail-stop 行为的高开销。
原文摘要(Abstract)

Modern shared-memory systems have erroneous, undefined behavior for programs that are not well synchronized. A promising solution is to provide fail-stop memory consistency, which ensures well-defined behavior for all programs. While fail-stop consistency avoids undefined behavior, it can lead to unexpected failures, imperiling performance or progress. This paper presents architecture support called Peacenik that avoids failures in the context of fail-stop memory consistency. We demonstrate Peacenik by applying Peacenik's general mechanisms to two existing architectures that provide fail-stop consistency. A simulation-based evaluation shows that Peacenik eliminates nearly all of the high costs of fail-stop behavior incurred by the baseline architectures, demonstrating how to get the benefits of fail-stop consistency without incurring most or all of its costs.

链接与引用

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

BibTeX
@inproceedings{paperbot5433,
  title = {Peacenik},
  author = {Rui Zhang and Swarnendu Biswas and Vignesh Balaji and Michael D. Bond and Brandon Lucia},
  booktitle = {ASPLOS},
  year = {2020},
  doi = {10.1145/3373376.3378485}
}