skip to main content
research-article
Open Access

Data-centric dynamic partial order reduction

Published:27 December 2017Publication History
Skip Abstract Section

Abstract

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 stateless exploration). As the number of distinct traces grows exponentially, dynamic partial-order reduction (DPOR) techniques have been successfully used to partition the space of traces into equivalence classes (Mazurkiewicz partitioning), with the goal of exploring only few representative traces from each class.

We introduce a new equivalence on traces under sequential consistency semantics, which we call the observation equivalence. Two traces are observationally equivalent if every read event observes the same write event in both traces. While the traditional Mazurkiewicz equivalence is control-centric, our new definition is data-centric. We show that our observation equivalence is coarser than the Mazurkiewicz equivalence, and in many cases even exponentially coarser. We devise a DPOR exploration of the trace space, called data-centric DPOR, based on the observation equivalence.

  • For acyclic architectures, our algorithm is guaranteed to explore exactly one representative trace from each observation class, while spending polynomial time per class. Hence, our algorithm is optimal wrt the observation equivalence, and in several cases explores exponentially fewer traces than any enumerative method based on the Mazurkiewicz equivalence.

  • For cyclic architectures, we consider an equivalence between traces which is finer than the observation equivalence; but coarser than the Mazurkiewicz equivalence, and in some cases is exponentially coarser. Our data-centric DPOR algorithm remains optimal under this trace equivalence.

Finally, we perform a basic experimental comparison between the existing Mazurkiewicz-based DPOR and our data-centric DPOR on a set of academic benchmarks. Our results show a significant reduction in both running time and the number of explored equivalence classes.

Skip Supplemental Material Section

Supplemental Material

partialorderreduction.webm

References

  1. Parosh Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. Optimal Dynamic Partial Order Reduction (POPL). Google ScholarGoogle ScholarDigital LibraryDigital Library
  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 ScholarDigital LibraryDigital Library
  3. Jade Alglave, Daniel Kroening, and Michael Tautschnig. 2013. Partial Orders for Efficient Bounded Model Checking of Concurrent Software. In CAV. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Tony Andrews, Shaz Qadeer, Sriram K. Rajamani, Jakob Rehof, and Yichen Xie. 2004. Zing: A Model Checker for Concurrent Software. In CAV. Google ScholarGoogle ScholarCross RefCross Ref
  5. Jean-Marie Cadiou and Jean-Jacques Lévy. 1973. Mechanizable proofs about parallel processes. In SWAT. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Marek Chalupa, Krishnendu Chatterjee, Andreas Pavlogiannis, Nishant Sinha, and Kapil Vaidya. 2017. Data-centric Dynamic Partial Order Reduction. Technical Report. IST Austria. https://repository.ist.ac.at/id/eprint/872Google ScholarGoogle Scholar
  7. 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
  8. 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
  9. Edmund M. Clarke, Jr., Orna Grumberg, and Doron A. Peled. 1999a. Model Checking. MIT Press, Cambridge, MA, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Brian Demsky and Patrick Lam. 2015. SATCheck: SAT-directed Stateless Model Checking for SC and TSO. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2015). ACM, New York, NY, USA, 20–36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Azadeh Farzan and Zachary Kincaid. 2012. Verification of parameterized concurrent programs by modular reasoning about data and control. In CAV. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Azadeh Farzan and P. Madhusudan. 2009. The Complexity of Predicting Atomicity Violations. In TACAS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Cormac Flanagan and Patrice Godefroid. 2005. Dynamic Partial-order Reduction for Model Checking Software. In POPL. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Michael R. Garey and David S. Johnson. 1979. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman & Co., New York, NY, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarCross RefCross Ref
  16. Patrice Godefroid. 1997. Model Checking for Programming Languages Using VeriSoft. In POPL. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Patrice Godefroid. 2005. Software Model Checking: The VeriSoft Approach. FMSD 26, 2 (2005), 77–101. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Patrice Godefroid, Gerard J. Holzmann, and Didier Pirottin. 1995. State-space Caching Revisited. FMSD 7, 3 (1995), 227–241. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Jeff Huang. 2015. Stateless Model Checking Concurrent Programs with Maximal Causality Reduction. In PLDI. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Kari Kähkönen, Olli Saarikivi, and Keijo Heljanko. 2012. Using Unfoldings in Automated Testing of Multithreaded Programs. In ACSD. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Vineet Kahlon, Chao Wang, and Aarti Gupta. 2009. Monotonic Partial Order Reduction: An Optimal Symbolic Partial Order Reduction Technique. In CAV.Google ScholarGoogle Scholar
  22. Shmuel Katz and Doron Peled. 1992. Defining Conditional Independence Using Collapses. Theor. Comput. Sci. 101, 2 (1992), 337–359. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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
  24. Leslie Lamport. 1978. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM 21, 7 (1978), 558–565. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. L. Lamport. 1979. How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs. IEEE Trans. Comput. 28, 9 (1979), 690–691. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Steven Lauterburg, Rajesh K. Karmani, Darko Marinov, and Gul Agha. 2010. Evaluating Ordering Heuristics for Dynamic Partial-order Reduction Techniques. In FASE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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
  28. Tom Ball Madan Musuvathi, Shaz Qadeer. 2007. CHESS: A systematic testing tool for concurrent software. Technical Report.Google ScholarGoogle Scholar
  29. Friedemann Mattern. 1989. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland, 215–226.Google ScholarGoogle Scholar
  30. 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 ScholarCross RefCross Ref
  31. K. L. McMillan. 1995. A Technique of State Space Search Based on Unfolding. FMSD 6, 1 (1995), 45–65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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
  33. 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
  34. Doron Peled. 1993. All from One, One for All: On Model Checking Using Representatives. In CAV.Google ScholarGoogle Scholar
  35. Carl Adam Petri. 1962. Kommunikation mit Automaten. Ph.D. Dissertation. Universität Hamburg.Google ScholarGoogle Scholar
  36. César Rodríguez, Marcelo Sousa, Subodh Sharma, and Daniel Kroening. 2015. Unfolding-based Partial Order Reduction. In CONCUR.Google ScholarGoogle Scholar
  37. Olli Saarikivi, Kari Kahkonen, and Keijo Heljanko. 2012. Improving Dynamic Partial Order Reductions for Concolic Testing. In ACSD. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Koushik Sen and Gul Agha. 2006. Automated Systematic Testing of Open Distributed Programs. In FASE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Koushik Sen and Gul Agha. 2007. A Race-detection and Flipping Algorithm for Automated Testing of Multi-threaded Programs. In HVC. Google ScholarGoogle ScholarCross RefCross Ref
  40. 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
  41. Antti Valmari. 1991. Stubborn Sets for Reduced State Space Generation. In Petri Nets. Google ScholarGoogle ScholarCross RefCross Ref
  42. Chao Wang, Zijiang Yang, Vineet Kahlon, and Aarti Gupta. 2008. Peephole Partial Order Reduction. In TACAS. Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Data-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 2, Issue POPL
        January 2018
        1961 pages
        EISSN:2475-1421
        DOI:10.1145/3177123
        Issue’s Table of Contents

        Copyright © 2017 Owner/Author

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 27 December 2017
        Published in pacmpl Volume 2, Issue POPL

        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!