Optimal Stateless Model Checking for Read-from Equivalence under Sequential Consistency
We present a new approach for stateless model checking (SMC) of multithreaded programs under Sequential Consistency (SC) semantics. To combat state-space explosion, SMC is often equipped with a partial-order reduction technique, which defines an equivalence on executions, and only needs to explore one execution in each equivalence class. Recently, it has been observed that the standardly used equivalence can be coarsened but still cover all program crashes and assertion violations. However, for this coarser equivalence, which preserves only the read-from relation from writes to reads, there is no SMC algorithm which is (i) optimal in the sense that it explores precisely one execution in each read-from equivalence class, and (ii) efficient in the sense that it spends polynomial effort per class. We present the first SMC algorithm for SC that is both optimal and efficient in practice, meaning that it spends polynomial time per equivalence class on all programs that we have tried. This is achieved by a novel test that checks whether a given read-from relation can arise in some execution. We have implemented the algorithm in a tool for C/C++ programs, called SWSC. Our experimental results show that SWSC, although slower than the fastest SMC tools in programs where tools happen to examine the same number of executions, always scales similarly or better than them, and outperforms them by an exponential factor in programs where the read-from equivalence is coarser than the standard one. We also present two non-trivial use cases where the new equivalence is particularly effective, as well as the significant performance advantage that SWSC offers compared to state-of-the-art SMC and systematic concurrency testing tools.
This program is tentative and subject to change.
Fri 25 Oct
|14:00 - 14:22|
|14:22 - 14:45|
|14:45 - 15:07|
|15:07 - 15:30|