skip to main content
research-article

Bounded partial-order reduction

Published:29 October 2013Publication History
Skip Abstract Section

Abstract

Eliminating concurrency errors is increasingly important as systems rely more on parallelism for performance. Exhaustively exploring the state-space of a program's thread interleavings finds concurrency errors and provides coverage guarantees, but suffers from exponential state-space explosion. Two prior approaches alleviate state-space explosion. (1) Dynamic partial-order reduction (DPOR) provides full coverage and explores only one interleaving of independent transitions. (2) Bounded search provides bounded coverage by enumerating interleavings that do not exceed a bound. In particular, we focus on preemption-bounding. Combining partial-order reduction with preemption-bounding had remained an open problem.

We show that preemption-bounded search explores the same partial orders repeatedly and consequently explores more executions than unbounded DPOR, even for small bounds. We further show that if DPOR simply uses the preemption bound to prune the state space as it explores new partial orders, it misses parts of the state space reachable in the bound and is therefore unsound. The bound essentially induces dependences between otherwise independent transitions in the DPOR state space. We introduce Bounded Partial Order Reduction (BPOR), a modification of DPOR that compensates for bound dependences. We identify properties that determine how well bounds combine with partial-order reduction. We prove sound coverage and empirically evaluate BPOR with preemption and fairness bounds. We show that by eliminating redundancies, BPOR significantly reduces testing time compared to bounded search. BPOR's faster incremental guarantees will help testers verify larger concurrent programs.

Skip Supplemental Material Section

Supplemental Material

References

  1. Apt, K. R., Francez, N., and Katz, S. Appraising fairness in languages for distributed programming. In Distributed Computing (1988), vol. 2, pp. 226--241.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Coons, K. E. Fast Error Detection with Coverage Guarantees for Concurrent Software. PhD thesis, The University of Texas at Austin, 2013.Google ScholarGoogle Scholar
  3. Coons, K. E., Musuvathi, M., and McKinley, K. S. Bounded partial order reduction (Proof source material in the ACM Digital Library). In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (2013). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dwyer, M. B., Hatcliff, J., and Ranganath, R. V. P. Exploiting object escape and locking information in partial-order reductions for concurrent object-oriented programs. In Formal Methods in System Design (2004), vol. 25, pp. 199--240. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Emmi, M., Qadeer, S., and Rakamaric, Z. Delay-bounded scheduling. In ACM SIGACT-SIGPLAN Principles of Programming Languages (POPL) (2011), pp. 411--422. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Flanagan, C., and Godefroid, P. Dynamic partial-order reduction for model checking software. In ACM SIGPLAN-SIGACT Principles of Programming Languages (POPL) (2005), pp. 110--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Godefroid, P. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer-Verlag, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Godefroid, P. Model checking for programming languages using Verisoft. In ACM SIGACT-SIGPLAN Principles of Programming Languages (POPL) (1997), pp. 174--186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Godefroid, P., and Pirottin, D. Refining dependencies improves partial-order verification methods (extended abstract). In International Conference on Computer Aided Verification (CAV) (1993), pp. 438--449. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Katz, S., and Peled, D. Defining conditional independence using collapses. In Theoretical Computer Science (1992), vol. 101, Elsevier Science Publishers, pp. 337--359. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mazurkiewicz, A. Trace theory. In Advances in Petri nets 1986, part II on Petri nets: Applications and relationships to other models of concurrency (1986), Springer-Verlag, pp. 279--324. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Musuvathi, M., and Qadeer, S. Iterative context bounding for systematic testing of multithreaded programs. In ACM Conference on Programming Language Design and Implementation (2007), pp. 446--455. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Musuvathi, M., and Qadeer, S. Partial-order reduction for context-bounded state exploration. Tech. Rep. MSR-TR-2007-12, Microsoft Research, 2007.Google ScholarGoogle Scholar
  14. Musuvathi, M., and Qadeer, S. Fair stateless model checking. In ACM Conference on Programming Language Design and Implementation (2008), pp. 362--371. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Musuvathi, M., Qadeer, S., Ball, T., Basler, G., Nainar, A., and Neamtiu, I. Finding and reproducing heisenbugs in concurrent programs. In USENIX Symposium on Operating Systems Design and Implementation (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Overman, W. T. Verification of concurrent systems: Function and timing. PhD thesis, University of California, Los Angeles, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Valmari, A. A stubborn attack on state explosion. In International Workshop on Computer Aided Verification (CAV '90) (1990), Springer-Verlag, pp. 156--165. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Visser, W., Havelund, K., Brat, G., and Park, S. Model checking programs. In Automated Softeware Engineering Journal (2000), pp. 3--12. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Bounded partial-order reduction

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!