Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

SPORE: Combining Symmetry and Partial Order Reduction

Published: 20 June 2024 Publication History

Abstract

Symmetry reduction (SR) and partial order reduction (POR) aim to scale up model checking by exploiting the underlying program structure: SR avoids exploring executions equivalent up to some permutation of symmetric threads, while POR avoids exploring executions equivalent up to reordering of independent instructions. While both SR and POR have been well studied individually, their combination in the context of stateless model checking has remained an open problem. In this paper, we present SPORE, the first stateless model checker that combines SR and POR in a sound, complete and optimal manner. SPORE can leverage both symmetries in the client program itself, but also internal symmetries in the underlying implementation (i.e., idempotent operations), a novel symmetry notion we introduce in this paper. Our experiments confirm that SPORE explores drastically fewer executions than tools that solely employ SR/POR, thereby greatly advancing the state-of-the-art.

References

[1]
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 2015 (LNCS). Vol. 9035. Springer, Berlin, Heidelberg, 353-367. https://doi.org/10.1007/978-3-662-46681-0_28.
[2]
Parosh Aziz Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. 2014. “ Optimal dynamic partial order reduction.” In: POPL 2014. ACM, New York, NY, USA, 373-384. https://doi.org/10.1145/2535838.2535845.
[3]
Parosh Aziz Abdulla, Stavros Aronis, Bengt Jonsson, and Konstantinos Sagonas. Sept. 2017. “ Source sets: A foundation for optimal dynamic partial order reduction. ” J. ACM, 64, 4, ( Sept. 2017 ), 25 : 1-25 : 49. https://doi.org/10.1145/3073408.
[4]
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, Magnus Lång, Tuan Phong Ngo, and Konstantinos Sagonas. Oct. 10, 2019. “ Optimal stateless model checking for reads-from equivalence under sequential consistency. ” Proc. ACM Program. Lang., 3, (Oct. 10, 2019 ), 150 : 1-150 : 29, OOPSLA, (Oct. 10, 2019 ). https://doi.org/10.1145/3360576.
[5]
Parosh Aziz Abdulla, Mohamed Faouzi Atig, Bengt Jonsson, and Tuan Phong Ngo. Oct. 2018. “ Optimal stateless model checking under the release-acquire semantics. ” Proc. ACM Program. Lang., 2, OOPSLA, (Oct. 2018 ), 135 : 1-135 : 29. https://d oi. org/10.1145/3276505.
[6]
Elvira Albert, Miguel Gómez-Zamalloa, Miguel Isabel, and Albert Rubio. 2018. “ Constrained dynamic partial order reduction.” In: CAV 2018. Ed. by Hana Chockler and Georg Weissenbacher. Springer International Publishing, Cham, 392-410. isbn: 978-3-319-96142-2. https://doi.org/10.1007/978-3-319-96142-2_24.
[7]
Jade Alglave, Luc Maranget, and Michael Tautschnig. July 2014. “Herding cats: Modelling, simulation, testing, and data mining for weak memory. ” ACM Trans. Program. Lang. Syst., 36, 2, ( July 2014 ), 7 : 1-7 : 74. https://doi.org/10.1145/2627752.
[8]
Stavros Aronis, Bengt Jonsson, Magnus Lång, and Konstantinos Sagonas. 2018. “ Optimal dynamic partial order reduction with observers.” In: TACAS 2018 (LNCS). Vol. 10806. Springer, 229-248. https://doi.org/10.1007/978-3-319-89963-3_14.
[9]
Marek Chalupa, Krishnendu Chatterjee, Andreas Pavlogiannis, Nishant Sinha, and Kapil Vaidya. Dec. 2017. “Data-centric dynamic partial order reduction. ” Proc. ACM Program. Lang., 2, POPL, ( Dec. 2017 ), 31 : 1-31 : 30. https://doi.org/10.1145/315 8119.
[10]
Krishnendu Chatterjee, Andreas Pavlogiannis, and Viktor Toman. Oct. 2019. “ Value-Centric Dynamic Partial Order Reduction. ” Proc. ACM Program. Lang., 3, OOPSLA, (Oct. 2019 ). https://doi.org/10.1145/3360550.
[11]
Edmund M. Clarke, Somesh Jha, Reinhard Enders, and Thomas Filkorn. 1996. “ Exploiting symmetry in temporal logic model checking. ” Form. Meth. Syst. Des., 9, 1 /2, 77-104. https://doi.org/10.1007/BF00625969.
[12]
Edmund M. Clarke, Daniel Kroening, and Flavio Lerda. 2004. “A tool for checking ANSI-C programs.” In: TACAS 2004 (LNCS). Vol. 2988. Springer, Berlin, Heidelberg, 168-176. https://doi.org/10.1007/978-3-540-24730-2_15.
[13]
Dave Dice and Alex Kogan. 2019. “TWA-Ticket Locks Augmented with a Waiting Array.” In: Euro-Par 2019. Springer-Verlag, Berlin, Heidelberg, 334-345. isbn: 978-3-030-29399-4. https://doi.org/10.1007/978-3-030-29400-7_24.
[14]
Simon Doherty, Lindsay Groves, Victor Luchangco, and Mark Moir. 2004. “ Formal Verification of a Practical Lock-Free Queue Algorithm.” In: FORTE 2004 (LNCS ). Ed. by David de Frutos-Escrig and Manuel Núñez. Vol. 3235. Springer, 97-114. https://doi.org/10.1007/978-3-540-30232-2_7.
[15]
Tayfun Elmas, Shaz Qadeer, and Serdar Tasiran. 2009. “A calculus of atomic actions.” In: POPL 2009. Ed. by Zhong Shao and Benjamin C. Pierce. ACM, 2-15. https://doi.org/10.1145/1480881.1480885.
[16]
E. Allen Emerson and Thomas Wahl. 2005. “Dynamic Symmetry Reduction.” In: TACAS 2005 (LNCS ). Ed. by Nicolas Halbwachs and Lenore D. Zuck. Vol. 3440. Springer, 382-396. https://doi.org/10.1007/978-3-540-31980-1_25.
[17]
Cormac Flanagan, Stephen N. Freund, and Shaz Qadeer. 2005. “Exploiting Purity for Atomicity. ” IEEE Trans. Software Eng., 31, 4, 275-291. https://doi.org/10.1109/TSE. 2005. 47.
[18]
Cormac Flanagan and Patrice Godefroid. 2005. “ Dynamic partial-order reduction for model checking software.” In: POPL 2005. ACM, New York, NY, USA, 110-121. https://doi.org/10.1145/1040305.1040315.
[19]
Shaked Flur, Kathryn E. Gray, Christopher Pulte, Susmit Sarkar, Ali Sezgin, Luc Maranget, Will Deacon, and Peter Sewell. 2016. “Modelling the ARMv8 architecture, operationally: Concurrency and ISA.” In: POPL 2016. ACM, St. Petersburg, FL, USA, 608-621. isbn: 978-1-4503-3549-2. https://doi.org/10.1145/2837614.2837615.
[20]
Dominique Fober, Yann Orlarey, and Stéphane Letz. 2001. Optimised Lock-Free FIFO Queue. Technical Report. GRAME. https://hal.archives-ouvertes.fr/hal-02158792.
[21]
Natalia Gavrilenko, Hernán Ponce-de-León, Florian Furbach, Keijo Heljanko, and Roland Meyer. 2019. “BMC for weak memory models: Relation analysis for compact SMT encodings.” In: CAV 2019. Ed. by Isil Dillig and Serdar Tasiran. Springer International Publishing, Cham, 355-365. isbn: 978-3-030-25540-4. https://doi.org/10.1007/978-3-030-25540-4_19.
[22]
Patrice Godefroid. 1997. “ Model checking for programming languages using VeriSoft.” In: POPL 1997. ACM, Paris, France, 174-186. https://doi.org/10.1145/263699.263717.
[23]
Timothy L. Harris, Keir Fraser, and Ian A. Pratt. 2002. “A Practical Multi-word Compare-and-Swap Operation.” In: DISC 2002 (LNCS ). Ed. by Dahlia Malkhi. Vol. 2508. Springer, 265-279. https://doi.org/10.1007/3-540-36108-1_18.
[24]
Maurice Herlihy. 1991. “ Wait-Free Synchronization. ” ACM Trans. Program. Lang. Syst., 13, 1, 124-149.
[25]
Maurice Herlihy and Nir Shavit. 2008. The art of multiprocessor programming.
[26]
Michalis Kokologiannakis, Ori Lahav, Konstantinos Sagonas, and Viktor Vafeiadis. Dec. 2017. “ Efective stateless model checking for C/C++ concurrency. ” Proc. ACM Program. Lang., 2, POPL, ( Dec. 2017 ), 17 : 1-17 : 32. https://doi.org/10.1145/31 58105.
[27]
Michalis Kokologiannakis, Iason Marmanis, Vladimir Gladstein, and Viktor Vafeiadis. Jan. 2022. “ Truly stateless, optimal dynamic partial order reduction. ” Proc. ACM Program. Lang., 6, POPL, ( Jan. 2022 ). https://doi.org/10.1145/3498711.
[28]
Michalis Kokologiannakis, Iason Marmanis, and Viktor Vafeiadis. June 2024a. SPORE: Combining Symmetry and Partial Order Reduction (Replication Package). (June 2024 ). https://doi.org/10.5281/zenodo.10798179.
[29]
Michalis Kokologiannakis, Iason Marmanis, and Viktor Vafeiadis. June 2024b. “ Spore: Combining Symmetry and Partial Order Reduction (supplementary material ), ” (June 2024 ). https://plv.mpi-sws.org/genmc.
[30]
Michalis Kokologiannakis, Iason Marmanis, and Viktor Vafeiadis. 2023. “Unblocking Dynamic Partial Order Reduction.” In: CAV 2023. Vol. 13964. Springer, 230-250. https://doi.org/10.1007/978-3-031-37706-8_12.
[31]
Michalis Kokologiannakis, Azalea Raad, and Viktor Vafeiadis. Oct. 2019a. “ Efective lock handling in stateless model checking. ” Proc. ACM Program. Lang., 3, OOPSLA, (Oct. 2019 ). https://doi.org/10.1145/3360599.
[32]
Michalis Kokologiannakis, Azalea Raad, and Viktor Vafeiadis. 2019b. “ Model checking for weakly consistent libraries.” In: PLDI 2019. ACM, New York, NY, USA. https://doi.org/10.1145/3314221.3314609.
[33]
Michalis Kokologiannakis, Xiaowei Ren, and Viktor Vafeiadis. 2021. “ Dynamic Partial Order Reductions for Spinloops.” In: FMCAD 2021. IEEE, 163-172. https://doi.org/10.34727/2021/isbn.978-3-85448-046-4_25.
[34]
Ori Lahav, Nick Giannarakis, and Viktor Vafeiadis. 2016. “ Taming Release-acquire Consistency.” In: POPL 2016. ACM, St. Petersburg, FL, USA, 649-662. isbn: 978-1-4503-3549-2. https://doi.org/10.1145/2837614.2837643.
[35]
Ori Lahav, Viktor Vafeiadis, Jeehoon Kang, Chung-Kil Hur, and Derek Dreyer. 2017. “Repairing sequential consistency in C/C++ 11.” In: PLDI 2017. ACM, Barcelona, Spain, 618-632. isbn: 978-1-4503-4988-8. https://doi.org/10.1145/3062341.3062 352.
[36]
Leslie Lamport. Sept. 1979. “ How to Make a Multiprocessor Computer that Correctly Executes Multiprocess Programs. ” IEEE Trans. Computers, 28, 9, ( Sept. 1979 ), 690-691. https://doi.org/10.1109/TC. 1979. 1675439.
[37]
Maged M. Michael and Michael L. Scott. 1998. “ Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors. ” J. Parallel Distrib. Comput., 51, 1, 1-26.
[38]
Huyen T. T. Nguyen, César Rodríguez, Marcelo Sousa, Camille Coti, and Laure Petrucci. 2018. “ Quasi-optimal partial order reduction.” In: CAV 2018 (LNCS ). Ed. by Hana Chockler and Georg Weissenbacher. Vol. 10982. Springer, 354-371. https://doi.org/10.1007/978-3-319-96142-2_22.
[39]
Brian Norris and Brian Demsky. 2013. “ CDSChecker: Checking concurrent data structures written with C/C++ atomics.” In: OOPSLA 2013. ACM, 131-150. https://doi.org/10.1145/2509136.2509514.
[40]
César Rodríguez, Marcelo Sousa, Subodh Sharma, and Daniel Kroening. 2015. “ Unfolding-based Partial Order Reduction.” In: CONCUR 2015 (LIPIcs). Vol. 42. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 456-469. https://doi.org/10.4230 /LIPIcs.CONCUR. 2015. 456.
[41]
SPARC International Inc. 1994. The SPARC architecture manual (version 9). Prentice-Hall.
[42]
R. Kent Treiber. 1986. Systems Programming: Coping with Parallelism. Tech. rep. Technical Report RJ5118, IBM. https://domi noweb. draco.res.ibm.com/58319a2ed2b1078985257003004617ef.html.
[43]
Thomas Wahl and Alastair Donaldson. 2010. “Replication and Abstraction: Symmetry in Automated Formal Verification.” 2, 2, 799-847. https://doi.org/10.3390/sym2020799.

Index Terms

  1. SPORE: Combining Symmetry and Partial Order Reduction

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Proceedings of the ACM on Programming Languages
      Proceedings of the ACM on Programming Languages  Volume 8, Issue PLDI
      June 2024
      2198 pages
      EISSN:2475-1421
      DOI:10.1145/3554317
      Issue’s Table of Contents
      This work is licensed under a Creative Commons Attribution International 4.0 License.

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 20 June 2024
      Published in PACMPL Volume 8, Issue PLDI

      Permissions

      Request permissions for this article.

      Check for updates

      Badges

      Author Tags

      1. Dynamic Partial Order Reduction
      2. Model Checking
      3. Symmetry Reduction

      Qualifiers

      • Research-article

      Funding Sources

      • European Research Council

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • 0
        Total Citations
      • 109
        Total Downloads
      • Downloads (Last 12 months)109
      • Downloads (Last 6 weeks)53
      Reflects downloads up to 01 Sep 2024

      Other Metrics

      Citations

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Get Access

      Login options

      Full Access

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media