Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2535838.2535845acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Optimal dynamic partial order reduction

Published: 08 January 2014 Publication 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.

Supplementary Material

MP4 File (d2_left_t7.mp4)

References

[1]
J. Armstrong. Erlang. phComm. of the ACM, 53 (9): 68--75, 2010.
[2]
M. Christakis, A. Gotovos, and K. Sagonas. Systematic testing for detecting concurrency errors in Erlang programs. In ICST, 2013.
[3]
E. M. Clarke, O. Grumberg, M. Minea, and D. Peled. State space reduction using partial order techniques. phSTTT, 2: 279--287, 1999.
[4]
C. Flanagan and P. Godefroid. Dynamic partial-order reduction for model checking software. In POPL, pages 110--121. ACM, 2005.
[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/.
[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.
[7]
P. Godefroid. Model checking for programming languages using VeriSoft. In POPL, pages 174--186. ACM Press, 1997.
[8]
P. Godefroid. Software model checking: The VeriSoft approach. Formal Methods in System Design, 26 (2): 77--101, 2005.
[9]
P. Godefroid and D. Pirottin. Refining dependencies improves partial-order verification methods. In CAV, volume 697 of LNCS, 1993.
[10]
P. Godefroid, G. J. Holzmann, and D. Pirottin. State-space caching revisited. Formal Methods in System Design, 7 (3): 227--241, 1995.
[11]
K. Kähkönen, O.Saarikivi, and Heljanko. Using unfoldings in automated testing of multithreaded programs. In ASE, pages 150--159. ACM, 2012.
[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.
[13]
S. Katz and D. Peled. Defining conditional independence using collapses. Theoretical Computer Science, 101: 337--359, 1992.
[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.
[15]
Y. Lei and R. Carver. Reachability testing of concurrent programs. IEEE Trans. Softw. Eng., 32 (6): 382--403, 2006.
[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.
[17]
A. Mazurkiewicz. Trace theory. In Advances in Petri Nets, 1986.
[18]
K. McMillan. A technique of a state space search based on unfolding. Formal Methods in System Design, 6 (1): 45--65, 1995.
[19]
M. Musuvathi and S. Qadeer. Iterative context bounding for systematic testing of multithreaded programs. In PLDI, pages 446--455, 2007.
[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.
[21]
D. Peled. All from one, one for all, on model-checking using representatives. In CAV, volume 697 of LNCS, pages 409--423, 1993.
[22]
O. Saarikivi, K. Kähkönen, and K. Heljanko. Improving dynamic partial order reductions for concolic testing. In ACSD. IEEE, 2012.
[23]
K. Sen and G. Agha. Automated systematic testing of open distributed programs. In FASE, volume 3922 of LNCS, pages 339--356, 2006.
[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.
[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.
[26]
A. Valmari. Stubborn sets for reduced state space generation. In Advances in Petri Nets, volume 483 of LNCS, pages 491--515, 1990.

Cited By

View all
  • (2025)Model Checking C/C++ with Mixed-Size AccessesProceedings of the ACM on Programming Languages10.1145/37049119:POPL(2232-2252)Online publication date: 9-Jan-2025
  • (2024)SPORE: Combining Symmetry and Partial Order ReductionProceedings of the ACM on Programming Languages10.1145/36564498:PLDI(1781-1803)Online publication date: 20-Jun-2024
  • (2024)Commutativity Simplifies Proofs of Parameterized ProgramsProceedings of the ACM on Programming Languages10.1145/36329258:POPL(2485-2513)Online publication date: 5-Jan-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 January 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. dynamic partial oder reduction
  3. software model checking
  4. source sets
  5. systematic testing
  6. wakeup trees

Qualifiers

  • Research-article

Conference

POPL '14
Sponsor:

Acceptance Rates

POPL '14 Paper Acceptance Rate 51 of 220 submissions, 23%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)96
  • Downloads (Last 6 weeks)18
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Model Checking C/C++ with Mixed-Size AccessesProceedings of the ACM on Programming Languages10.1145/37049119:POPL(2232-2252)Online publication date: 9-Jan-2025
  • (2024)SPORE: Combining Symmetry and Partial Order ReductionProceedings of the ACM on Programming Languages10.1145/36564498:PLDI(1781-1803)Online publication date: 20-Jun-2024
  • (2024)Commutativity Simplifies Proofs of Parameterized ProgramsProceedings of the ACM on Programming Languages10.1145/36329258:POPL(2485-2513)Online publication date: 5-Jan-2024
  • (2024)Predictive Monitoring against Pattern Regular LanguagesProceedings of the ACM on Programming Languages10.1145/36329158:POPL(2191-2225)Online publication date: 5-Jan-2024
  • (2024)Optimistic Prediction of Synchronization-Reversal Data RacesProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639099(1-13)Online publication date: 20-May-2024
  • (2024)Efficiently Adapting Stateless Model Checking for C11/C++11 to Mixed-Size AccessesProgramming Languages and Systems10.1007/978-981-97-8943-6_17(346-364)Online publication date: 23-Oct-2024
  • (2024)Trading Space for Simplicity in Stateless Model CheckingReal Time and Such10.1007/978-3-031-73751-0_8(79-97)Online publication date: 23-Oct-2024
  • (2024)A Domain Specific Language for Testing Distributed Protocol ImplementationsNetworked Systems10.1007/978-3-031-67321-4_6(100-117)Online publication date: 29-May-2024
  • (2024)Parsimonious Optimal Dynamic Partial Order ReductionComputer Aided Verification10.1007/978-3-031-65630-9_2(19-43)Online publication date: 24-Jul-2024
  • (2024)Enhancing GenMC’s Usability and PerformanceTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-57249-4_4(66-84)Online publication date: 6-Apr-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media