Quasi-Optimal Partial Order Reduction

02/12/2018
by   Huyen T. T Nguyen, et al.
0

A dynamic partial order reduction (DPOR) algorithm is optimal when it always explores at most one representative per Mazurkiewicz trace. Existing literature suggests that the reduction obtained by the non-optimal, state-of-the-art Source-DPOR (SDPOR) algorithm is comparable to optimal DPOR. We show the first program with O(n) Mazurkiewicz traces where SDPOR explores O(2^n) redundant schedules and identify the cause of the blow-up as an NP-hard problem. Our main contribution is a new approach, called Quasi-Optimal POR, that can arbitrarily approximate an optimal exploration using a provided constant k. We present an implementation of our method in a new tool called Dpu using specialised data structures. Experiments with Dpu, including Debian packages, show that optimality is achieved with low values of k, outperforming state-of-the-art tools.

READ FULL TEXT

page 1

page 2

page 3

page 4

05/14/2020

Symbolic Partial-Order Execution for Testing Multi-Threaded Programs

We describe a technique for systematic testing of multi-threaded program...
09/03/2019

Value-centric Dynamic Partial Order Reduction

The verification of concurrent programs remains an open challenge, as th...
08/29/2022

AMR-MUL: An Approximate Maximally Redundant Signed Digit Multiplier

In this paper, we present an energy-efficient, yet high-speed approximat...
07/16/2018

Backward Reduction of CNN Models with Information Flow Analysis

This paper proposes backward reduction, an algorithm that explores the c...
05/10/2019

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

Program executions under relaxed memory model (rmm) semantics are signif...
04/29/2022

NP-hardness of computing PL geometric category in dimension 2

The PL geometric category of a polyhedron P, denoted plgcat(P), provides...
01/12/2021

Lattice reduction by cubification

Lattice reduction is a NP-hard problem well known in computer science an...