一句话:提出 PC-DPOR,用约束依赖图精化迁移依赖并优先探索孤立迁移,大幅减少并发验证中的冗余迹。
并发程序验证中,线程交替使待探索迹的数量随程序规模迅速增长。偏序归约(POR)通过将迹划分为等价类来缓解迹空间爆炸,但由于对迁移依赖采用粗粒度过近似,仍会探索大量冗余迹。本文提出符号化方法 PC-DPOR:构造约束依赖图以精化迁移之间的依赖关系,并优先探索图中的孤立迁移,从而削减冗余等价迹;同时利用所生成的约束在给定可达状态上动态判定使能迁移是否真正依赖,克服传统依赖过近似的固有精度不足。作者将该方法作为 CPAchecker 的扩展实现,用 BDD 表示状态集。实验表明,该方法能有效降低并发程序验证的时间与内存开销,探索的状态数平均降至 8.62%。
Thread alternation aggravates the difficulty of concurrent program verification since the number of traces to be explored grows rapidly as the scale of a concurrent program increases. Partial-Order Reduction (POR) techniques alleviate the trace-space explosion problem by partitioning the traces into different equivalent classes. However, due to the coarse dependency approximation of transitions, there are still a large number of redundant traces explored throughout the verification. In this paper, a symbolic approach, namely Prioritized Constraint-Aided Dynamic Partial-Order Reduction (PC-DPOR), is proposed to reduce the redundant traces. Specifically, a constrained dependency graph is presented to refine dependencies between transitions, and the exploration of isolated transitions in the graph is prioritized to reduce redundant equivalent traces. Further, we utilize the generated constraints to dynamically detect whether the enabled transitions at the given reachable states are dependent, and thereby to overcome the inherent imprecision of the traditional dependence over-approximation. We have implemented the proposed approach as an extension of CPAchecker by utilizing BDDs as the representation of state sets. Experimental results show that our approach can effectively reduce the time and memory consumption for verifying concurrent programs. In particular, the number of explored states is reduced to 8.62% on average.
DOI 原文 ·
@inproceedings{paperbot7182,
title = {Prioritized Constraint-Aided Dynamic Partial-Order Reduction},
author = {Jie Su and Cong Tian and Zuchao Yang and Jiyu Yang and Bin Yu and Zhenhua Duan},
booktitle = {ASE},
year = {2022},
doi = {10.1145/3551349.3561159}
}