Distributed dynamic partial order reduction based verification of threaded software

  • Authors:
  • Yu Yang;Xiaofang Chen;Ganesh Gopalakrishnan;Robert M. Kirby

  • Affiliations:
  • School of Computing, University of Utah, Salt Lake City, UT;School of Computing, University of Utah, Salt Lake City, UT;School of Computing, University of Utah, Salt Lake City, UT;School of Computing, University of Utah, Salt Lake City, UT

  • Venue:
  • Proceedings of the 14th international SPIN conference on Model checking software
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Runtime (dynamic) model checking is a promising verification methodology for real-world threaded software because of its many features, the prominent ones being: (i) it avoids the need to extract a model and instead runs the actual code, and (ii) the precision of information available at run-time allows techniques such as dynamic partial order reduction (DPOR) [1] to dramatically cut down the number of interleavings examined. Unfortunately, DPOR does not have many implementations for real thread libraries such as POSIX Pthreads, and suffers from high computational overheads due to a stateless search that requires re-executions. In our previous work [2], we designed a runtime model checker, inspect, that overcomes the first of these drawbacks. Inspect has been shown capable of detecting data races, deadlocks and other incorrect API usages in real-world PThreads C programs. In this paper, we describe a distributed version of inspect, which implements an extended DPOR algorithm. Our two key contributions are: (i) a practical algorithm for distributed dynamic partial order reduction; (ii) the innovations that helped distributed inspect attain nearly linear (with respect to the number of CPUs) speedup on realistic examples.