Unfolding-based Partial Order Reduction

3 Jul 2015  ·  César Rodríguez, Marcelo Sousa, Subodh Sharma, Daniel Kroening ·

Partial order reduction (POR) and net unfoldings are two alternative methods to tackle state-space explosion caused by concurrency. In this paper, we propose the combination of both approaches in an effort to combine their strengths. We first define, for an abstract execution model, unfolding semantics parameterized over an arbitrary independence relation. Based on it, our main contribution is a novel stateless POR algorithm that explores at most one execution per Mazurkiewicz trace, and in general, can explore exponentially fewer, thus achieving a form of super-optimality. Furthermore, our unfolding-based POR copes with non-terminating executions and incorporates state-caching. Over benchmarks with busy-waits, among others, our experiments show a dramatic reduction in the number of executions when compared to a state-of-the-art DPOR.

PDF Abstract

Categories


Logic in Computer Science Programming Languages D.2.4

Datasets


  Add Datasets introduced or used in this paper