paperbot · PL 论文追踪

全部论文 待读 收藏

P2 RELINCHE: Automatically Checking Linearizability under Relaxed Memory Consistency

RELINCHE:在宽松内存一致性下自动检查线性一致性
POPL 9(POPL)2025匹配度 2/10 · 该论文研究弱内存一致性下的并发库线性一致性验证,属于程序验证与并发内存模型方向,但与用户核心关注的 LLM/Agent 与静态分析、浮点程序分析或贝叶斯程序分析的交叉均无直接关联。仅在形式化验证与程序分析的大类上有较弱联系。引用 4 inbox
Pavel Golovin, Michalis Kokologiannakis, Viktor Vafeiadis
crossref: 2026-09-10

AI 速览

一句话:提出 Relinche,全自动模型检测器,在弱内存一致性下验证并发库的原子性与功能正确性。

并发库(如栈、队列)是并发程序的基本构件,通常向客户端提供原子接口,并采用复杂同步机制以提升性能。本文研究如何在弱内存一致性下全自动验证这类库的正确性。作者开发了模型检测器 Relinche:它针对在完全并行客户端中使用该库的程序,建立并发库实现与其原子规约之间的精化(refinement)关系,再将结果加强以覆盖所有其他(更受限)的客户端,从而验证库方法被有界次数调用时的原子性与功能正确性。实验表明,Relinche 能扩展到标准并发库基准测试,验证所有客户端程序在最多 7–9 次库方法调用下的正确性;同时,对于由弱内存一致性导致的非平凡线性一致性缺陷,它能找到仅含 4–7 次方法调用的最小反例。

问题
如何在弱内存一致性下,全自动验证并发库实现的原子性与功能正确性,且该验证需覆盖任意有界次调用库方法的客户端程序。
方法
实现模型检测器 Relinche:先在完全并行客户端中建立并发库实现与原子规约之间的精化关系,再将其加强以涵盖所有其他更受限的客户端。
评估
在标准并发库基准上验证所有客户端程序(最多 7–9 次方法调用)的正确性,并对弱内存一致性引发的线性一致性缺陷找到 4–7 次方法调用的最小反例。
原文摘要(Abstract)

Concurrent libraries implement standard data structures, such as stacks and queues, in a thread-safe manner, typically providing an atomic interface to the data structure. They serve as building blocks for concurrent programs, and incorporate advanced synchronization mechanisms to achieve good performance. In this paper, we are concerned with the problem of verifying correctness of such libraries under weak memory consistency in a fully automated fashion. To this end, we develop R elinche , a model checker that verifies atomicity and functional correctness of a concurrent library implementation in any client program that invokes the library methods up to some bounded number of times. Our tool establishes refinement between the concurrent library implementation and its atomic specification in a fully parallel client, which it then strengthens to capture all possible other (more constrained) clients of the library. R elinche scales sufficiently to verify correctness of standard concurrent library benchmarks for all client programs with up to 7–9 library method invocations, and finds minimal counterexamples with 4-7 method calls of non-trivial linearizability bugs due to weak memory consistency.

链接与引用

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

BibTeX
@article{paperbot3229,
  title = {RELINCHE: Automatically Checking Linearizability under Relaxed Memory Consistency},
  author = {Pavel Golovin and Michalis Kokologiannakis and Viktor Vafeiadis},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {POPL},
  year = {2025},
  doi = {10.1145/3704906}
}