Value-centric Dynamic Partial Order Reduction

09/03/2019
by   Krishnendu Chatterjee, et al.
0

The verification of concurrent programs remains an open challenge, as thread interaction has to be accounted for, which leads to state-space explosion. Stateless model checking battles this problem by exploring traces rather than states of the program. As there are exponentially many traces, dynamic partial-order reduction (DPOR) techniques are used to partition the trace space into equivalence classes, and explore a few representatives from each class. The standard equivalence that underlies most DPOR techniques is the happens-before equivalence, however recent works have spawned a vivid interest towards coarser equivalences. The efficiency of such approaches is a product of two parameters: (i) the size of the partitioning induced by the equivalence, and (ii) the time spent by the exploration algorithm in each class of the partitioning. In this work, we present a new equivalence, called value-happens-before and show that it has two appealing features. First, value-happens-before is always at least as coarse as the happens-before equivalence, and can be even exponentially coarser. Second, the value-happens-before partitioning is efficiently explorable when the number of threads is bounded. We present an algorithm called value-centric DPOR (VCDPOR), which explores the underlying partitioning using polynomial time per class. Finally, we perform an experimental evaluation of VCDPOR on various benchmarks, and compare it against other state-of-the-art approaches. Our results show that value-happens-before typically induces a significant reduction in the size of the underlying partitioning, which leads to a considerable reduction in the running time for exploring the whole partitioning.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/13/2021

Stateless Model Checking under a Reads-Value-From Equivalence

Stateless model checking (SMC) is one of the standard approaches to the ...
research
11/21/2020

Erdös-Szekeres Partitioning Problem

In this note, we present a substantial improvement on the computational ...
research
11/23/2020

The Reads-From Equivalence for the TSO and PSO Memory Models

The verification of concurrent programs remains an open challenge due to...
research
02/12/2018

Quasi-Optimal Partial Order Reduction

A dynamic partial order reduction (DPOR) algorithm is optimal when it al...
research
05/10/2019

Dynamic Verification with Observational Equivalence of C/C++ Concurrency

Program executions under relaxed memory model (rmm) semantics are signif...
research
08/19/2022

Awaiting for Godot: Stateless Model Checking that Avoids Executions where Nothing Happens

Stateless Model Checking (SMC) is a verification technique for concurren...
research
10/22/2019

The Inconsistent Labelling Problem of Stutter-Preserving Partial-Order Reduction

In model checking, partial-order reduction (POR) is an effective techniq...

Please sign up or login with your details

Forgot password? Click here to reset