Abstract
The verification of concurrent programs remains an open challenge, as thread interaction has to be accounted for, which leads to state-space explosion. Stateless model checking battles this problem by exploring traces rather than states of the program. As there are exponentially many traces, dynamic partial-order reduction (DPOR) techniques are used to partition the trace space into equivalence classes, and explore a few representatives from each class. The standard equivalence that underlies most DPOR techniques is the happens-before equivalence, however recent works have spawned a vivid interest towards coarser equivalences. The efficiency of such approaches is a product of two parameters: (i) the size of the partitioning induced by the equivalence, and (ii) the time spent by the exploration algorithm in each class of the partitioning.
In this work, we present a new equivalence, called value-happens-before and show that it has two appealing features. First, value-happens-before is always at least as coarse as the happens-before equivalence, and can be even exponentially coarser. Second, the value-happens-before partitioning is efficiently explorable when the number of threads is bounded. We present an algorithm called value-centric DPOR (VCDPOR), which explores the underlying partitioning using polynomial time per class. Finally, we perform an experimental evaluation of VCDPOR on various benchmarks, and compare it against other state-of-the-art approaches. Our results show that value-happens-before typically induces a significant reduction in the size of the underlying partitioning, which leads to a considerable reduction in the running time for exploring the whole partitioning.
- Parosh Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. Optimal Dynamic Partial Order Reduction (POPL).Google Scholar
- Parosh Aziz Abdulla, Stavros Aronis, Mohamed Faouzi Atig, Bengt Jonsson, Carl Leonardsson, and Konstantinos Sagonas. 2015. Stateless Model Checking for TSO and PSO. In TACAS.Google Scholar
- Elvira Albert, Puri Arenas, María García de la Banda, Miguel Gómez-Zamalloa, and Peter J. Stuckey. 2017. Context-Sensitive Dynamic Partial Order Reduction. In Computer Aided Verification, Rupak Majumdar and Viktor Kunčak (Eds.). Springer International Publishing, Cham, 526–543.Google Scholar
- Jade Alglave, Daniel Kroening, and Michael Tautschnig. 2013. Partial Orders for Efficient Bounded Model Checking of Concurrent Software. In CAV.Google Scholar
- Tony Andrews, Shaz Qadeer, Sriram K. Rajamani, Jakob Rehof, and Yichen Xie. 2004. Zing: A Model Checker for Concurrent Software. In CAV.Google Scholar
- Stavros Aronis, Bengt Jonsson, Magnus Lång, and Konstantinos Sagonas. 2018. Optimal Dynamic Partial Order Reduction with Observers. In Tools and Algorithms for the Construction and Analysis of Systems, Dirk Beyer and Marieke Huisman (Eds.). Springer International Publishing, Cham, 229–248.Google Scholar
- James Burns and Nancy A Lynch. 1980. Mutual exclusion using invisible reads and writes. In In Proceedings of the 18th Annual Allerton Conference on Communication, Control, and Computing. Citeseer.Google Scholar
- Jean-Marie Cadiou and Jean-Jacques Lévy. 1973. Mechanizable proofs about parallel processes. In SWAT.Google Scholar
- Marek Chalupa, Krishnendu Chatterjee, Andreas Pavlogiannis, Nishant Sinha, and Kapil Vaidya. 2017. Data-centric Dynamic Partial Order Reduction. Proc. ACM Program. Lang. 2, POPL, Article 31 (Dec. 2017), 30 pages. Google Scholar
Digital Library
- Krishnendu Chatterjee, Andreas Pavlogiannis, and Viktor Toman. 2019. Value-centric Dynamic Partial Order Reduction. arXiv: arXiv:1909.00989Google Scholar
- E.M. Clarke, O. Grumberg, M. Minea, and D. Peled. 1999b. State space reduction using partial order techniques. STTT 2, 3 (1999), 279–287.Google Scholar
Cross Ref
- E. M. Clarke, E. A. Emerson, and A. P. Sistla. 1986. Automatic Verification of Finite-state Concurrent Systems Using Temporal Logic Specifications. ACM Trans. Program. Lang. Syst. 8, 2 (1986).Google Scholar
Digital Library
- Edmund M. Clarke, Jr., Orna Grumberg, and Doron A. Peled. 1999a. Model Checking. MIT Press, Cambridge, MA, USA.Google Scholar
Digital Library
- Andreia Correia and Pedro Ramalhete. 2016. 2-thread software solutions for the mutual exclusion problem. https: //github.com/pramalhe/ConcurrencyFreaks/blob/master/papers/cr2t- 2016.pdf .Google Scholar
- Brian Demsky and Patrick Lam. 2015. SATCheck: SAT-directed Stateless Model Checking for SC and TSO (OOPSLA). ACM, New York, NY, USA, 20–36. Google Scholar
Digital Library
- E. W. Dijkstra. 1983. Solution of a Problem in Concurrent Programming Control. Commun. ACM 26, 1 (Jan. 1983), 21–22. Google Scholar
Digital Library
- Azadeh Farzan and Zachary Kincaid. 2012. Verification of parameterized concurrent programs by modular reasoning about data and control. In CAV.Google Scholar
- Azadeh Farzan and P. Madhusudan. 2009. The Complexity of Predicting Atomicity Violations. In TACAS.Google Scholar
- Cormac Flanagan and Patrice Godefroid. 2005. Dynamic Partial-order Reduction for Model Checking Software. In POPL.Google Scholar
- P. Godefroid. 1996. Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer-Verlag, Secaucus, NJ, USA.Google Scholar
Digital Library
- Patrice Godefroid. 1997. Model Checking for Programming Languages Using VeriSoft. In POPL.Google Scholar
- Patrice Godefroid. 2005. Software Model Checking: The VeriSoft Approach. FMSD 26, 2 (2005), 77–101.Google Scholar
Digital Library
- Patrice Godefroid, Gerard J. Holzmann, and Didier Pirottin. 1995. State-space Caching Revisited. FMSD 7, 3 (1995), 227–241.Google Scholar
Digital Library
- Jeff Huang. 2015. Stateless Model Checking Concurrent Programs with Maximal Causality Reduction. In PLDI.Google Scholar
- Shiyou Huang and Jeff Huang. 2016. Maximal Causality Reduction for TSO and PSO. SIGPLAN Not. 51, 10 (Oct. 2016), 447–461. Google Scholar
Digital Library
- Shiyou Huang and Jeff Huang. 2017. Speeding Up Maximal Causality Reduction with Static Dependency Analysis. In 31st European Conference on Object-Oriented Programming, ECOOP 2017, June 19-23, 2017, Barcelona, Spain. 16:1–16:22. Google Scholar
Cross Ref
- Kari Kähkönen, Olli Saarikivi, and Keijo Heljanko. 2012. Using Unfoldings in Automated Testing of Multithreaded Programs. In ACSD.Google Scholar
- Shmuel Katz and Doron Peled. 1992. Defining Conditional Independence Using Collapses. Theor. Comput. Sci. 101, 2 (1992), 337–359.Google Scholar
Digital Library
- J. L. W. Kessels. 1982. Arbitration without common modifiable variables. Acta Informatica 17, 2 (01 Jun 1982), 135–141. Google Scholar
Digital Library
- Donald E. Knuth. 1966. Additional Comments on a Problem in Concurrent Programming Control. Commun. ACM 9, 5 (May 1966), 321–322. Google Scholar
Digital Library
- Michalis Kokologiannakis, Ori Lahav, Konstantinos Sagonas, and Viktor Vafeiadis. 2017. Effective Stateless Model Checking for C/C++ Concurrency. Proc. ACM Program. Lang. 2, POPL, Article 17 (Dec. 2017), 32 pages. Google Scholar
Digital Library
- Akash Lal and Thomas Reps. 2009. Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis. FMSD 35, 1 (2009), 73–97.Google Scholar
Digital Library
- Steven Lauterburg, Rajesh K. Karmani, Darko Marinov, and Gul Agha. 2010. Evaluating Ordering Heuristics for Dynamic Partial-order Reduction Techniques. In FASE.Google Scholar
- Richard J. Lipton. 1975. Reduction: A Method of Proving Properties of Parallel Programs. Commun. ACM 18, 12 (1975), 717–721.Google Scholar
Digital Library
- Tom Ball Madan Musuvathi, Shaz Qadeer. 2007. CHESS: A systematic testing tool for concurrent software. Technical Report.Google Scholar
- A Mazurkiewicz. 1987. Trace Theory. In Advances in Petri Nets 1986, Part II on Petri Nets: Applications and Relationships to Other Models of Concurrency. Springer-Verlag New York, Inc., 279–324.Google Scholar
Digital Library
- K. L. McMillan. 1995. A Technique of State Space Search Based on Unfolding. FMSD 6, 1 (1995), 45–65.Google Scholar
Digital Library
- Madanlal Musuvathi and Shaz Qadeer. 2007. Iterative Context Bounding for Systematic Testing of Multithreaded Programs. SIGPLAN Not. 42, 6 (2007), 446–455.Google Scholar
Digital Library
- Madanlal Musuvathi, Shaz Qadeer, Thomas Ball, Gerard Basler, Piramanayagam Arumuga Nainar, and Iulian Neamtiu. 2008. Finding and Reproducing Heisenbugs in Concurrent Programs. In OSDI.Google Scholar
Digital Library
- Huyen T. T. Nguyen, César Rodríguez, Marcelo Sousa, Camille Coti, and Laure Petrucci. 2018. Quasi-Optimal Partial Order Reduction. In Computer Aided Verification - 30th International Conference, CAV 2018, Held as Part of the Federated Logic Conference, FloC 2018, Oxford, UK, July 14-17, 2018, Proceedings, Part II. 354–371. Google Scholar
Cross Ref
- Doron Peled. 1993. All from One, One for All: On Model Checking Using Representatives. In CAV.Google Scholar
- Gary L. Peterson. 1981. Myths About the Mutual Exclusion Problem. Inf. Process. Lett. 12 (1981), 115–116.Google Scholar
- Gary L. Peterson and Michael J. Fischer. 1977. Economical Solutions for the Critical Section Problem in a Distributed System (Extended Abstract). In Proceedings of the Ninth Annual ACM Symposium on Theory of Computing (STOC ’77). ACM, New York, NY, USA, 91–97. Google Scholar
Digital Library
- Carl Adam Petri. 1962. Kommunikation mit Automaten. Ph.D. Dissertation. Universität Hamburg.Google Scholar
- César Rodríguez, Marcelo Sousa, Subodh Sharma, and Daniel Kroening. 2015. Unfolding-based Partial Order Reduction. In CONCUR.Google Scholar
- Olli Saarikivi, Kari Kahkonen, and Keijo Heljanko. 2012. Improving Dynamic Partial Order Reductions for Concolic Testing. In ACSD.Google Scholar
- Koushik Sen and Gul Agha. 2006. Automated Systematic Testing of Open Distributed Programs. In FASE.Google Scholar
- Koushik Sen and Gul Agha. 2007. A Race-detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs. In HVC.Google Scholar
- B. K. Szymanski. 1988. A Simple Solution to Lamport’s Concurrent Programming Problem with Linear Wait. In Proceedings of the 2Nd International Conference on Supercomputing (ICS ’88). ACM, New York, NY, USA, 621–626. Google Scholar
Digital Library
- Samira Tasharofi, Rajesh K. Karmani, Steven Lauterburg, Axel Legay, Darko Marinov, and Gul Agha. 2012. TransDPOR: A Novel Dynamic Partial-order Reduction Technique for Testing Actor Programs. In FMOODS/FORTE.Google Scholar
- Yih-Kuen Tsay. 1998. Deriving a Scalable Algorithm for Mutual Exclusion. In Proceedings of the 12th International Symposium on Distributed Computing (DISC ’98). Springer-Verlag, London, UK, UK, 393–407. http://dl.acm.org/citation.cfm?id= 645955.675799Google Scholar
Digital Library
- Antti Valmari. 1991. Stubborn Sets for Reduced State Space Generation. In Petri Nets.Google Scholar
- Chao Wang, Zijiang Yang, Vineet Kahlon, and Aarti Gupta. 2008. Peephole Partial Order Reduction. In TACAS.Google Scholar
Index Terms
Value-centric dynamic partial order reduction
Recommendations
Data-centric dynamic partial order reduction
We present a new dynamic partial-order reduction method for stateless model checking of concurrent programs. A common approach for exploring program behaviors relies on enumerating the traces of the program, without storing the visited states (aka ...
Dynamic partial-order reduction for model checking software
POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe present a new approach to partial-order reduction for model checking software. This approach is based on initially exploring an arbitrary interleaving of the various concurrent processes/threads, and dynamically tracking interactions between these to ...
Cluster-Based Partial-Order Reduction
The verification of concurrent systems through an exhaustive traversal of the state space suffers from the infamous state-space-explosion problem, caused by the many interleavings of actions of different processes in the system. Partial-order reduction ...






Comments