Advertisement

Scalable shared memory LTL model checking

  • J. Barnat
  • L. Brim
  • P. Ročkai
SPIN 07

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.

Keywords

Parallel Shared memory Formal verification LTL model checking 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)Google Scholar
  2. 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)Google Scholar
  3. 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)Google Scholar
  4. 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)Google Scholar
  5. 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)Google Scholar
  6. 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)Google Scholar
  7. 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)Google Scholar
  8. 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)Google Scholar
  9. 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)Google Scholar
  10. 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)CrossRefGoogle Scholar
  11. 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)Google Scholar
  12. 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)CrossRefGoogle Scholar
  13. 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)Google Scholar
  14. 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)Google Scholar
  15. 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)Google Scholar
  16. 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. 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)Google Scholar
  18. 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)Google Scholar
  19. 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)CrossRefGoogle Scholar
  20. 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)CrossRefGoogle Scholar
  21. 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)Google Scholar
  22. 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)Google Scholar
  23. 23.
    Geldenhuys J., Valmari A.: More efficient on-the-fly LTL verification with Tarjan’s algorithm. Theor. Comput. Sci. 345(1), 60–82 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    Geldenhuys J., Valmari A.: More efficient on-the-fly LTL verification with Tarjan’s algorithm. Theor. Comput. Sci. 345(1), 60–82 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  25. 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)Google Scholar
  26. 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)Google Scholar
  27. 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)Google Scholar
  28. 28.
    Holzmann G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2003)Google Scholar
  29. 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)CrossRefGoogle Scholar
  30. 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)Google Scholar
  31. 31.
    Inggs C., Barringer H.: CTL* model checking on a shared memory architecture. Formal Methods Syst. Des. 29(2), 135–155 (2006)zbMATHCrossRefGoogle Scholar
  32. 32.
    Lafuente, A.L.: Simplified distributed LTL model checking by localizing cycles. Technical Report 00176, Institut für Informatik, University Freiburg, Germany, July 2002Google Scholar
  33. 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)CrossRefGoogle Scholar
  34. 34.
    Michael M.M.: Scalable lock-free dynamic memory allocation. SIGPLAN Not. 39(6), 35–46 (2004)CrossRefGoogle Scholar
  35. 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)Google Scholar
  36. 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)Google Scholar
  37. 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)Google Scholar
  38. 38.
    Talbot, S.: Performance tuning of programs for shared-memory multiprocessors. Master’s thesis, Department of Computing, Imperial College, London (1995)Google Scholar
  39. 39.
    Tarjan, R.: Depth first search and linear graph algorithms. SIAM J. Comput. 2, 146–160 (1972)Google Scholar
  40. 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)Google Scholar
  41. 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)Google Scholar

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  1. 1.Faculty of InformaticsMasaryk UniversityBrnoCzech Republic

Personalised recommendations