Skip to main content
QUICK REVIEW

[论文解读] Stateless Model Checking for TSO and PSO

Parosh Aziz Abdulla, Stavros Aronis|arXiv (Cornell University)|Jan 9, 2015
Parallel Computing and Optimization Techniques参考文献 25被引用 7
一句话总结

本文提出时间痕迹(chronological traces)——一种针对 TSO 和 PSO 模型下宽松内存模型执行的新颖、无环表示方法,可在无状态模型检测中实现最优的动态部分顺序约简(DPOR)。该方法在保持与 Shasha-Snir 时间痕迹一一对应的同时避免了环路,将宽松内存模型的验证开销降低至接近顺序一致性水平,实际性能显著优于以往工具。

ABSTRACT

We present a technique for efficient stateless model checking of programs that execute under the relaxed memory models TSO and PSO. The basis for our technique is a novel representation of executions under TSO and PSO, called chronological traces. Chronological traces induce a partial order relation on relaxed memory executions, capturing dependencies that are needed to represent the interaction via shared variables. They are optimal in the sense that they only distinguish computations that are inequivalent under the widely-used representation by Shasha and Snir. This allows an optimal dynamic partial order reduction algorithm to explore a minimal number of executions while still guaranteeing full coverage. We apply our techniques to check, under the TSO and PSO memory models, LLVM assembly produced for C/pthreads programs. Our experiments show that our technique reduces the verification effort for relaxed memory models to be almost that for the standard model of sequential consistency. In many cases, our implementation significantly outperforms other comparable tools.

研究动机与目标

  • 为解决在 TSO 和 PSO 等宽松内存模型(RMM)下无状态模型检测(SMC)效率低下的问题,其中冗余的执行探索导致验证成本上升。
  • 克服现有部分顺序约简(POR)技术的局限性,这些技术依赖于 RMM 中的循环发生前关系,无法直接应用。
  • 设计一种规范的、无环的宽松内存执行表示方法,保留 Shasha-Snir 时间痕迹下的等价性,同时避免冗余探索。
  • 通过构建一个既最小又充分的偏序关系(发生前关系),实现 TSO 和 PSO 的最优 DPOR。
  • 证明所提出的方法即使在宽松内存模型下,也能实现接近顺序一致性的验证性能。

提出的方法

  • 提出时间痕迹作为 TSO 和 PSO 下程序执行的一种新颖、规范的表示方法,通过精心设计的事件顺序捕捉依赖关系。
  • 基于时间痕迹定义一个无环的发生前关系,适用于 DPOR,与原始 Shasha-Snir 时间痕迹中的循环关系形成对比。
  • 确保时间痕迹与 Shasha-Snir 时间痕迹之间的一一对应关系,保证 RMM 下每个等价类仅被探索一次。
  • 将最优 DPOR 算法改造为使用时间痕迹所导出的无环发生前关系,确保探索最小化的同时保持完全覆盖。
  • 通过建模每位置的存储缓冲区并调整程序顺序边,将该技术扩展至 PSO,避免不同内存位置更新之间的环路。
  • 在 LLVM 编译的 C/pthreads 程序上实现并评估该方法,与现有工具进行性能对比。

实验结果

研究问题

  • RQ1能否构建一种规范的、无环的宽松内存执行表示方法,使其在 Shasha-Snir 时间痕迹下保持等价性?
  • RQ2该表示方法能否实现 TSO 和 PSO 的最优动态部分顺序约简(DPOR),避免对等价执行的冗余探索?
  • RQ3与顺序一致性相比,该方法在多大程度上减少了宽松内存模型的验证开销?
  • RQ4在真实程序上,该方法在可扩展性和效率方面是否优于现有工具?
  • RQ5该方法能否在不重新引入发生前关系环路的前提下,成功处理 PSO 的每位置存储缓冲区?

主要发现

  • 时间痕迹与 Shasha-Snir 时间痕迹之间存在一一对应关系,确保覆盖无损失,同时支持无环的发生前关系。
  • 由时间痕迹导出的无环发生前关系支持最优 DPOR,保证每个 Shasha-Snir 时间痕迹等价类仅被探索一次。
  • 对于健壮程序(如无数据竞争程序),在 TSO 和 PSO 下探索的执行数量与顺序一致性下相同,这是由于其与 Mazurkiewicz 时间痕迹之间的一一对应关系。
  • 该方法将宽松内存模型的验证开销降低至接近顺序一致性水平,显著提升了效率。
  • 实证评估表明,该实现的性能在许多情况下优于其他可比工具,尤其在复杂并发程序上表现突出。
  • 该方法通过建模每位置的存储缓冲区并选择性地调整程序顺序边,成功处理了 PSO,避免了不同位置更新之间的环路。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。