skip to main content
10.1145/2535838.2535845acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Optimal dynamic partial order reduction

Published:08 January 2014Publication History

ABSTRACT

Stateless model checking is a powerful technique for program verification, which however suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR). We present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called source sets, which replace the role of persistent sets in previous algorithms. First, we show how to modify an existing DPOR algorithm to work with source sets, resulting in an efficient and simple to implement algorithm. Second, we extend this algorithm with a novel mechanism, called wakeup trees, that allows to achieve optimality. We have implemented both algorithms in a stateless model checking tool for Erlang programs. Experiments show that source sets significantly increase the performance and that wakeup trees incur only a small overhead in both time and space.

Skip Supplemental Material Section

Supplemental Material

d2_left_t7.mp4

mp4

316.7 MB

References

  1. J. Armstrong. Erlang. phComm. of the ACM, 53 (9): 68--75, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Christakis, A. Gotovos, and K. Sagonas. Systematic testing for detecting concurrency errors in Erlang programs. In ICST, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. M. Clarke, O. Grumberg, M. Minea, and D. Peled. State space reduction using partial order techniques. phSTTT, 2: 279--287, 1999.Google ScholarGoogle Scholar
  4. C. Flanagan and P. Godefroid. Dynamic partial-order reduction for model checking software. In POPL, pages 110--121. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Flanagan and P. Godefroid. Addendum to Dynamic partial-order reduction for model checking software, 2005. Available at http://research.microsoft.com/en us/um/people/pg/.Google ScholarGoogle Scholar
  6. P. Godefroid. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. PhD thesis, University of Liège, 1996. Also, volume 1032 of LNCS, Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Godefroid. Model checking for programming languages using VeriSoft. In POPL, pages 174--186. ACM Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. Godefroid. Software model checking: The VeriSoft approach. Formal Methods in System Design, 26 (2): 77--101, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Godefroid and D. Pirottin. Refining dependencies improves partial-order verification methods. In CAV, volume 697 of LNCS, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Godefroid, G. J. Holzmann, and D. Pirottin. State-space caching revisited. Formal Methods in System Design, 7 (3): 227--241, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Kähkönen, O.Saarikivi, and Heljanko. Using unfoldings in automated testing of multithreaded programs. In ASE, pages 150--159. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. V. Kahlon, C. Wang, and A. Gupta. Monotonic partial order reduction: An optimal symbolic partial order reduction technique. In CAV, volume 5643 of LNCS, pages 398--413. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Katz and D. Peled. Defining conditional independence using collapses. Theoretical Computer Science, 101: 337--359, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Lauterburg, R. Karmani, D. Marinov, and G. Agha. Evaluating ordering heuristics for dynamic partial-order reduction techniques. In FASE, volume 6013 of LNCS, pages 308--322. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Y. Lei and R. Carver. Reachability testing of concurrent programs. IEEE Trans. Softw. Eng., 32 (6): 382--403, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. F. Mattern. Virtual time and global states of distributed systems. In M. Cosnard, editor, Proc. Workshop on Parallel and Distributed Algorithms, pages 215--226, Ch. de Bonas, France, 1989. Elsevier.Google ScholarGoogle Scholar
  17. A. Mazurkiewicz. Trace theory. In Advances in Petri Nets, 1986. Google ScholarGoogle Scholar
  18. K. McMillan. A technique of a state space search based on unfolding. Formal Methods in System Design, 6 (1): 45--65, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Musuvathi and S. Qadeer. Iterative context bounding for systematic testing of multithreaded programs. In PLDI, pages 446--455, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Musuvathi, S. Qadeer, T. Ball, G. Basler, P. Nainar, and I. Neamtiu. Finding and reproducing heisenbugs in concurrent programs. In OSDI, pages 267--280. USENIX Association, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. Peled. All from one, one for all, on model-checking using representatives. In CAV, volume 697 of LNCS, pages 409--423, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. O. Saarikivi, K. Kähkönen, and K. Heljanko. Improving dynamic partial order reductions for concolic testing. In ACSD. IEEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. K. Sen and G. Agha. Automated systematic testing of open distributed programs. In FASE, volume 3922 of LNCS, pages 339--356, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. K. Sen and G. Agha. A race-detection and flipping algorithm for automated testing of multi-threaded programs. In Haifa Verification Conference, volume 4383 of LNCS, pages 166--182. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. Tasharofi et al. TransDPOR: A novel dynamic partial-order reduction technique for testing actor programs. In FMOODS/FORTE, volume 7273 of LNCS, pages 219--234. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Valmari. Stubborn sets for reduced state space generation. In Advances in Petri Nets, volume 483 of LNCS, pages 491--515, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Optimal dynamic 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
                • Published in

                  cover image ACM Conferences
                  POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
                  January 2014
                  702 pages
                  ISBN:9781450325448
                  DOI:10.1145/2535838

                  Copyright © 2014 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 8 January 2014

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article

                  Acceptance Rates

                  POPL '14 Paper Acceptance Rate51of220submissions,23%Overall Acceptance Rate824of4,130submissions,20%

                  Upcoming Conference

                  POPL '25

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader