skip to main content
research-article
Open Access

Value-centric dynamic partial order reduction

Published:10 October 2019Publication History
Skip Abstract Section

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.

References

  1. Parosh Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. Optimal Dynamic Partial Order Reduction (POPL).Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. Jade Alglave, Daniel Kroening, and Michael Tautschnig. 2013. Partial Orders for Efficient Bounded Model Checking of Concurrent Software. In CAV.Google ScholarGoogle Scholar
  5. Tony Andrews, Shaz Qadeer, Sriram K. Rajamani, Jakob Rehof, and Yichen Xie. 2004. Zing: A Model Checker for Concurrent Software. In CAV.Google ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. Jean-Marie Cadiou and Jean-Jacques Lévy. 1973. Mechanizable proofs about parallel processes. In SWAT.Google ScholarGoogle Scholar
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. Krishnendu Chatterjee, Andreas Pavlogiannis, and Viktor Toman. 2019. Value-centric Dynamic Partial Order Reduction. arXiv: arXiv:1909.00989Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarCross RefCross Ref
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. Edmund M. Clarke, Jr., Orna Grumberg, and Doron A. Peled. 1999a. Model Checking. MIT Press, Cambridge, MA, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. E. W. Dijkstra. 1983. Solution of a Problem in Concurrent Programming Control. Commun. ACM 26, 1 (Jan. 1983), 21–22. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Azadeh Farzan and Zachary Kincaid. 2012. Verification of parameterized concurrent programs by modular reasoning about data and control. In CAV.Google ScholarGoogle Scholar
  18. Azadeh Farzan and P. Madhusudan. 2009. The Complexity of Predicting Atomicity Violations. In TACAS.Google ScholarGoogle Scholar
  19. Cormac Flanagan and Patrice Godefroid. 2005. Dynamic Partial-order Reduction for Model Checking Software. In POPL.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. Patrice Godefroid. 1997. Model Checking for Programming Languages Using VeriSoft. In POPL.Google ScholarGoogle Scholar
  22. Patrice Godefroid. 2005. Software Model Checking: The VeriSoft Approach. FMSD 26, 2 (2005), 77–101.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Patrice Godefroid, Gerard J. Holzmann, and Didier Pirottin. 1995. State-space Caching Revisited. FMSD 7, 3 (1995), 227–241.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Jeff Huang. 2015. Stateless Model Checking Concurrent Programs with Maximal Causality Reduction. In PLDI.Google ScholarGoogle Scholar
  25. Shiyou Huang and Jeff Huang. 2016. Maximal Causality Reduction for TSO and PSO. SIGPLAN Not. 51, 10 (Oct. 2016), 447–461. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarCross RefCross Ref
  27. Kari Kähkönen, Olli Saarikivi, and Keijo Heljanko. 2012. Using Unfoldings in Automated Testing of Multithreaded Programs. In ACSD.Google ScholarGoogle Scholar
  28. Shmuel Katz and Doron Peled. 1992. Defining Conditional Independence Using Collapses. Theor. Comput. Sci. 101, 2 (1992), 337–359.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. J. L. W. Kessels. 1982. Arbitration without common modifiable variables. Acta Informatica 17, 2 (01 Jun 1982), 135–141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Donald E. Knuth. 1966. Additional Comments on a Problem in Concurrent Programming Control. Commun. ACM 9, 5 (May 1966), 321–322. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. Akash Lal and Thomas Reps. 2009. Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis. FMSD 35, 1 (2009), 73–97.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Steven Lauterburg, Rajesh K. Karmani, Darko Marinov, and Gul Agha. 2010. Evaluating Ordering Heuristics for Dynamic Partial-order Reduction Techniques. In FASE.Google ScholarGoogle Scholar
  34. Richard J. Lipton. 1975. Reduction: A Method of Proving Properties of Parallel Programs. Commun. ACM 18, 12 (1975), 717–721.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Tom Ball Madan Musuvathi, Shaz Qadeer. 2007. CHESS: A systematic testing tool for concurrent software. Technical Report.Google ScholarGoogle Scholar
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. K. L. McMillan. 1995. A Technique of State Space Search Based on Unfolding. FMSD 6, 1 (1995), 45–65.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Madanlal Musuvathi and Shaz Qadeer. 2007. Iterative Context Bounding for Systematic Testing of Multithreaded Programs. SIGPLAN Not. 42, 6 (2007), 446–455.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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 ScholarGoogle ScholarCross RefCross Ref
  41. Doron Peled. 1993. All from One, One for All: On Model Checking Using Representatives. In CAV.Google ScholarGoogle Scholar
  42. Gary L. Peterson. 1981. Myths About the Mutual Exclusion Problem. Inf. Process. Lett. 12 (1981), 115–116.Google ScholarGoogle Scholar
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. Carl Adam Petri. 1962. Kommunikation mit Automaten. Ph.D. Dissertation. Universität Hamburg.Google ScholarGoogle Scholar
  45. César Rodríguez, Marcelo Sousa, Subodh Sharma, and Daniel Kroening. 2015. Unfolding-based Partial Order Reduction. In CONCUR.Google ScholarGoogle Scholar
  46. Olli Saarikivi, Kari Kahkonen, and Keijo Heljanko. 2012. Improving Dynamic Partial Order Reductions for Concolic Testing. In ACSD.Google ScholarGoogle Scholar
  47. Koushik Sen and Gul Agha. 2006. Automated Systematic Testing of Open Distributed Programs. In FASE.Google ScholarGoogle Scholar
  48. Koushik Sen and Gul Agha. 2007. A Race-detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs. In HVC.Google ScholarGoogle Scholar
  49. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  50. 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 ScholarGoogle Scholar
  51. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  52. Antti Valmari. 1991. Stubborn Sets for Reduced State Space Generation. In Petri Nets.Google ScholarGoogle Scholar
  53. Chao Wang, Zijiang Yang, Vineet Kahlon, and Aarti Gupta. 2008. Peephole Partial Order Reduction. In TACAS.Google ScholarGoogle Scholar

Index Terms

  1. Value-centric 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

      Full Access

      • Published in

        cover image Proceedings of the ACM on Programming Languages
        Proceedings of the ACM on Programming Languages  Volume 3, Issue OOPSLA
        October 2019
        2077 pages
        EISSN:2475-1421
        DOI:10.1145/3366395
        Issue’s Table of Contents

        Copyright © 2019 Owner/Author

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 10 October 2019
        Published in pacmpl Volume 3, Issue OOPSLA

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

      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!