Skip to main content
Log in

Scalable shared memory LTL model checking

  • SPIN 07
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

Recent development in computer hardware has brought more widespread emergence of shared memory, multi-core systems. These architectures offer opportunities to speed up various tasks—model checking and reachability analysis among others. In this paper, we present a design for a parallel shared memory LTL model checker that is based on a distributed memory algorithm. To improve the scalability of our tool, we have devised a number of implementation techniques which we present in this paper. We also report on a number of experiments we conducted to analyse the behaviour of our tool under different conditions using various models. We demonstrate that our tool exhibits significant speedup in comparison with sequential tools, which improves the workflow of verification in general.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Barnat, J., Brim, L., Chaloupka, J.: Parallel breadth-first search LTL model-checking. In: IEEE International Conference on Automated Software Engineering (ASE’03), pp. 106–115. IEEE Computer Society Press (2003)

  2. Barnat, J., Brim, L., Ročkai, P.: Scalable multi-core LTL model-checkin. In: Model Checking Software (SPIN’07), volume 4595 of LNCS, pp. 187–203. Springer (2007)

  3. Barnat, J., Brim, L., Ročkai, P.: DiVinE multi-core—a parallel LTL model-checker. In: Automated Technology for Verification and Analysis (ATVA’08), volume 5311 of LNCS, pp. 234–239. Springer (2008)

  4. Barnat, J., Brim, L., Stř íbrná, J.: Distributed LTL model-checking in SPIN. In: Model Checking Software (SPIN’01), volume 2057 of LNCS, pp. 200–216. Springer (2001)

  5. Barnat, J., Brim, L., Černá, I.: Property driven distribution of nested DFS. In: International Workshop on Verification and Computational Logic (VCL’02), pp. 1–10. University of Southampton, UK. Technical Report DSSE-TR-2002-5 in DSSE (2002)

  6. Barnat, J., Brim, L., Černá, I.: Cluster-based LTL model checking of large systems. In: Formal Methods for Components and Objects (FMCO’05), number 4111 in LNCS, pp. 259–279. Springer (2006)

  7. Barnat, J., Brim, L., Černá, I., Moravec, P., Ročkai, P., Šimeček, P.: DiVinE—a tool for distributed verification (Tool Paper). In: Computer Aided Verification (CAV’06), volume 4144 of LNCS, pp. 278–281. Springer (2006)

  8. Barnat, J., Ročkai, P.: Shared hash tables in parallel model checking. In: Parallel and Distributed Methods in verification (PDMC’07), pp. 81–95. CTIT, University of Twente (2007)

  9. Behrmann, G., Hune, T.S., Vaandrager, F.W.: Distributed timed model checking—How the search order matters. In: Computer Aided Verification (CAV’00), volume 1855 of LNCS, pp. 216–231. Springer (2000)

  10. Bell A., Haverkort B.R.: Sequential and distributed model checking of Petri Net specifications. Int. J. Softw. Tools Technol. Transfer 7(1), 43–60 (2005)

    Article  Google Scholar 

  11. Berger, E., McKinley, K., Blumofe, R., Wilson, P.: Hoard: a scalable memory allocator for multithreaded applications. In: International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX), pp. 117–128. ACM Press (2000)

  12. Blom S., Orzan S.: A distributed algorithm for strong bisimulation reduction of state spaces. Int. J. Softw. Tools Technol. Transfer 7(1), 74–86 (2005)

    Article  Google Scholar 

  13. Bollig, B., Leucker, M., Weber, M.: Parallel model checking for the alternation free μ-calculus. In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS’01), volume 2031 of LNCS, pp. 543–558. Springer (2001)

  14. Brim, L., Černá, I., Moravec, P., Šimša, J.: Accepting predecessors are better than back edges in distributed LTL model-checking. In: Formal Methods in Computer-Aided Design (FMCAD’04), volume 3312 of LNCS, pp. 352–366. Springer (2004)

  15. Brim, L., Černá, I., Krčál, P., Pelánek, R.: Distributed LTL model checking based on negative cycle detection. In: Foundations of Software Technology and Theoretical Computer Science (FSTTCS’01), volume 2245 of LNCS, pp. 96–107. Springer (2001)

  16. Brim L., Černá I., Moravec P., Šimša J.: How to order vertices for distributed LTL model-checking based on accepting predecessors. ENTCS 132(2), 3–18 (2006)

    Google Scholar 

  17. Caselli, S., Conte, G., Marenzoni, P.: Parallel state space exploration for GSPN models. In: Applications and Theory of Petri Nets (PN’95), volume 935 of LNCS, pp. 181–200. Springer (1995)

  18. Černá, I., Pelánek, R.: Distributed explicit fair cycle detection (set based approach). In: Model Checking Software (SPIN’03), volume 2648 of LNCS, pp. 49–73. Springer (2003)

  19. Ciardo G., Gluckman J., Nicol D.M.: Distributed state space generation of discrete-state +stochastic models. INFORMS J. Comput. 10(1), 82–93 (1998)

    Article  Google Scholar 

  20. Courcoubetis C., Vardi M.Y., Wolper P., Yannakakis M.: Memory-efficient algorithms for the verification of temporal properties. Formal Methods Syst. Des. 1, 275–288 (1992)

    Article  Google Scholar 

  21. Fisler, K., Fraer, R., Kamhi, G., Vardi, M.Y., Yang, Z.: Is there a best symbolic cycle-detection algorithm? In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS’01), volume 2031 of LNCS, pp. 420–434. Springer (2001)

  22. Garavel, H., Mateescu, R., Smarandache, I.: Parallel state space construction for model-checking. In: Model Checking Software (SPIN’01), volume 2057 of LNCS, pp. 217–234. Springer (2001)

  23. Geldenhuys J., Valmari A.: More efficient on-the-fly LTL verification with Tarjan’s algorithm. Theor. Comput. Sci. 345(1), 60–82 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  24. Geldenhuys J., Valmari A.: More efficient on-the-fly LTL verification with Tarjan’s algorithm. Theor. Comput. Sci. 345(1), 60–82 (2005)

    Article  MATH  MathSciNet  Google Scholar 

  25. Grumberg, O., Heyman, T., Ifergan, N., Schuster, A.: achieving speedups in distributed symbolic reachability analysis through asynchronous computation. In: Correct Hardware Design and Verification Methods (CHARME’05), volume 3725 of LNCS, pp. 129–145. Springer (2005)

  26. Grumberg, O., Heyman, T., Schuster, A.: Distributed model checking for μ-calculus. In: Computer Aided Verification (CAV’01), volume 2102 of LNCS, pp. 350–362. Springer (2001)

  27. Haverkort, B.R., Bell, A., Bohnenkamp, H.C.: On the efficient sequential and distributed generation of very large Markov chains from stochastic Petri Nets. In: International Workshop on Petri Net and Performance Models (PNPM’99), pp. 12–21. IEEE Computer Society Press (1999)

  28. Holzmann G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2003)

    Google Scholar 

  29. Holzmann G.J., Bosnacki D.: The design of a multicore extension of the SPIN model checker. IEEE Trans. Softw. Eng. 33(10), 659–674 (2007)

    Article  Google Scholar 

  30. Holzmann, G.J., Peled, D., Yannakakis, M.: On nested depth first search. In: The SPIN Verification System, pp. 23–32. American Mathematical Society (1996)

  31. Inggs C., Barringer H.: CTL* model checking on a shared memory architecture. Formal Methods Syst. Des. 29(2), 135–155 (2006)

    Article  MATH  Google Scholar 

  32. Lafuente, A.L.: Simplified distributed LTL model checking by localizing cycles. Technical Report 00176, Institut für Informatik, University Freiburg, Germany, July 2002

  33. Leung H.-F., Ting H.-F.: An optimal algorithm for global termination detection in shared-memory asynchronous multiprocessor systems. IEEE Trans. Parallel Distrib. Syst. 8(5), 538–543 (1997)

    Article  Google Scholar 

  34. Michael M.M.: Scalable lock-free dynamic memory allocation. SIGPLAN Not. 39(6), 35–46 (2004)

    Article  Google Scholar 

  35. Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Symposium on Principles of Distributed Computing (PODC’96), pp. 267–275. ACM Press (1996)

  36. Pelánek, R.: BEEM: benchmarks for explicit model checkers. In: Model Checking Software (SPIN’07), volume 4595 of LNCS, pp. 263–267. Springer (2007)

  37. Schwoon, S., Esparza, J.: A note on on-the-fly verification algorithms. In: Tools and Algorithms for the Construction and Analysis of Systems (TACAS’05), volume 3440 of LNCS, pp. 174–190. Springer (2005)

  38. Talbot, S.: Performance tuning of programs for shared-memory multiprocessors. Master’s thesis, Department of Computing, Imperial College, London (1995)

  39. Tarjan, R.: Depth first search and linear graph algorithms. SIAM J. Comput. 2, 146–160 (1972)

    Google Scholar 

  40. Vardi, M.Y.: Automata-theoretic model checking revisited. In: Verification, Model Checking, and Abstract Interpretation (VMCAI’07), volume 4349 of LNCS, pp. 137–150. Springer (2007)

  41. Verstoep, K., Bal, H., Barnat, J., Brim, L.: Efficient large-scale model checking. In: 23rd IEEE International Parallel & Distributed Processing Symposium (IPDPS 2009). IEEE (2009)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to J. Barnat.

Additional information

This work was partially supported by the Grant Agency of Czech Republic grants No. 201/09/1389 and No. 201/09/P497 and the Academy of Sciences grant No. 1ET408050503, and P. Ročkai partially by Red Hat, Inc.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Barnat, J., Brim, L. & Ročkai, P. Scalable shared memory LTL model checking. Int J Softw Tools Technol Transfer 12, 139–153 (2010). https://doi.org/10.1007/s10009-010-0136-z

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-010-0136-z

Keywords

Navigation