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.
Similar content being viewed by others
References
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Č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)
Ciardo G., Gluckman J., Nicol D.M.: Distributed state space generation of discrete-state +stochastic models. INFORMS J. Comput. 10(1), 82–93 (1998)
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)
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)
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)
Geldenhuys J., Valmari A.: More efficient on-the-fly LTL verification with Tarjan’s algorithm. Theor. Comput. Sci. 345(1), 60–82 (2005)
Geldenhuys J., Valmari A.: More efficient on-the-fly LTL verification with Tarjan’s algorithm. Theor. Comput. Sci. 345(1), 60–82 (2005)
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)
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)
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)
Holzmann G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2003)
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)
Holzmann, G.J., Peled, D., Yannakakis, M.: On nested depth first search. In: The SPIN Verification System, pp. 23–32. American Mathematical Society (1996)
Inggs C., Barringer H.: CTL* model checking on a shared memory architecture. Formal Methods Syst. Des. 29(2), 135–155 (2006)
Lafuente, A.L.: Simplified distributed LTL model checking by localizing cycles. Technical Report 00176, Institut für Informatik, University Freiburg, Germany, July 2002
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)
Michael M.M.: Scalable lock-free dynamic memory allocation. SIGPLAN Not. 39(6), 35–46 (2004)
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)
Pelánek, R.: BEEM: benchmarks for explicit model checkers. In: Model Checking Software (SPIN’07), volume 4595 of LNCS, pp. 263–267. Springer (2007)
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)
Talbot, S.: Performance tuning of programs for shared-memory multiprocessors. Master’s thesis, Department of Computing, Imperial College, London (1995)
Tarjan, R.: Depth first search and linear graph algorithms. SIAM J. Comput. 2, 146–160 (1972)
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)
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)
Author information
Authors and Affiliations
Corresponding author
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
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-010-0136-z