Skip to main content
Log in

Swarm model checking on the GPU

  • STTT
  • Special Issue: SPIN 2019
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

We present Grapple, a new and powerful framework for explicit-state model checking on GPUs. Grapple is based on swarm verification (SV), a model-checking technique wherein a collection or swarm of small, memory- and time-bounded verification tests (VTs) are run in parallel to perform state-space exploration. SV achieves high state-space coverage via diversification of the search strategies used by constituent VTs. Grapple represents a swarm implementation for the GPU. In particular, it runs a parallel swarm of internally parallel VTs, which are implemented in a manner that specifically targets the GPU architecture and the SIMD parallelism its computing cores offer. Grapple also makes effective use of the GPU shared memory, eliminating costly inter-block communication overhead. We conducted a comprehensive performance analysis of Grapple focused on various design parameters, including the size of the visited-state queue structure, implementation of guard statements, and nondeterministic exploration order. Tests are run with multiple hardware configurations, including on the Amazon cloud. Our results show that Grapple performs favorably compared to the SPIN swarm and a prior non-swarm GPU implementation. Although a recently debuted FPGA swarm is faster, the deployment process to the FPGA is much more complex than Grapple ’s.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20

Similar content being viewed by others

References

  1. About CUDA | NVIDIA developer zone. https://developer.nvidia.com/about-cuda

  2. Amazon EC2 P3 instances. https://aws.amazon.com/ec2/instance-types/p3/

  3. Alcantara, D.A.F.: Efficient hash tables on the GPU, 2011. Copyright-Copyright ProQuest, UMI Dissertations Publishing 2011; Last updated - 2014-01-23; First page - n/a; M3: Ph.D

  4. BEEM: BEnchmarks for Explicit Model Checkers-ParaDiSe. http://paradise.fi.muni.cz/beem/

  5. Barnat, J., Bauch, P., Brim, L., C̆es̆ka, M.: Designing fast LTL model checking algorithms for many-core GPUs. J. Parallel Distrib. Comput. 72(9):1083–1097 (2012)

  6. Barnat, J., Brim, L., Roc̆kai, P.: Scalable multi-core LTL model-checking. In: D. Bos̆nac̆ki and S. Edelkamp, editors, Proc. of SPIN 2007: the 14th international SPIN conference on Model checking software, vol. 4595 of Lecture Notes in Computer Science, pages 187–203. Springer Berlin Heidelberg, (2007)

  7. Barnat, J., Brim, L., Str̆íbrná, J.: Distributed LTL model-checking in SPIN. In: Dwyer, M. (ed.) Proc. SPIN 2001: the 8th International SPIN Workshop on Model Checking of Software, volume 2057 of Lecture Notes in Computer Science, pp. 200–216. Springer, Berlin Heidelberg (2001)

  8. Bartocci, E., DeFrancisco, R., Smolka, S.A.: Towards a GPGPU-parallel SPIN model checker. In: Proceedings of the 2014 International SPIN Symposium on Model Checking of Software, pp. 87–96. ACM, (2014)

  9. CUDA C programming guide. https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html

  10. Cassee, N., Neele, T., Wijs, A.: On the scalability of the GPUexplore explicit-state model checker. In: Proceedings Third Workshop on Graphs as Models (GaM 2017), Uppsala, Sweden, (2017)

  11. Cassee, N., Wijs, A.: Analysing the performance of GPU hash tables for state space exploration. Electr. Proc. Theor. Comput. Sci. EPTCS 263, 1–15 (2017)

    Article  MathSciNet  Google Scholar 

  12. Češka, M., Pilař, P., Paoletti, N., Brim, L., Kwiatkowska, M.: PRISM-PSY: precise gpu-accelerated parameter synthesis for stochastic systems. In: Chechik, M., Raskin, J.-F.: (eds.), Tools and Algorithms for the Construction and Analysis of Systems, pp. 367–384. Springer, Berlin (2016)

  13. Cho, S., Ferdman, M., Milder, P.: FPGASwarm: High throughput model checking using FPGAs. In: 28th International Conference on Field Programmable Logic and Applications (FPL). IEEE, (2018)

  14. DeFrancisco, R., Cho, S., Ferdman, M., Smolka, S.A.: Swarm model checking on the GPU. In: Biondi, F., Given-Wilson, T., Legay, A. (eds.) Model Checking Software, pp. 94–113. Springer, Cham (2019)

    Chapter  Google Scholar 

  15. Deng, Y., Wang, B.D., Mu, S.: Taming irregular EDA applications on GPUs. In: Proceedings of the ICCAD ’09: the International Conference on Computer-Aided Design, ICCAD ’09, pp. 539–546, New York, NY, USA, (2009). ACM

  16. Edelkamp, S., Sulewski, D.: Efficient explicit-state model checking on general purpose graphics processors. In: Pol, J., Weber, M. (eds.) Proceedings SPIN’10: the 17th International SPIN Conference on Model Checking Software, vol. 6349 of Lecture Notes in Computer Science, pp. 106–123. Springer, Berlin (2010)

  17. Evangelista, S., Laarman, A., Petrucci, L., van de Pol, J.: Improved multi-core nested depth-first search. In: Chakraborty, S., Mukund, M. (eds.) Automated Technology for Verification and Analysis. Lecture Notes in Computer Science, pp. 269–283. Springer, Berlin (2012)

    Chapter  Google Scholar 

  18. Filippidis, I., Holzmann, G.J.: An improvement of the piggyback algorithm for parallel model checking. In: Proceedings of the 2014 International SPIN Symposium on Model Checking of Software, pp. 48–57. ACM, (2014)

  19. Fuess, M.E., Leeser, M., Leonard, T.: An FPGA implementation of explicit-state model checking. In: Proceedings of the 2008 16th International Symposium on Field-Programmable Custom Computing Machines, FCCM ’08, pp. 119–126, Washington, DC, USA, (2008). IEEE Computer Society

  20. Green 500 | TOP500 supercomputer sites. https://www.top500.org/green500/

  21. Harish, P., Narayanan, P.: Accelerating large graph algorithms on the GPU using CUDA. In: Aluru, S., Parashar, M., Badrinath, R., Prasanna, V. (eds.) Proc. HiPC’07: the 14th international conference on High performance computing, vol. 4873 of Lecture Notes in Computer Science, pp. 197–208. Springer, Berlin Heidelberg (2007)

  22. Holzmann, G., Bos̆nac̆ki, D.: The design of a multicore extension of the SPIN model checker. IEEE Trans. Softw. Eng. 33(10), 659–674 (2007)

    Article  Google Scholar 

  23. Holzmann, G.J.: Parallelizing the SPIN model checker. In: Donaldson, A., Parker, D. (eds.) Proc. SPIN 2012: the 19th International Workshop on SPIN Model Checking Software, vol. 7385 of Lecture Notes in Computer Science, pp. 155–171. Springer, Berlin (2012)

  24. Holzmann, G.J.: Cloud-based verification of concurrent software. In: Proceedings of the 2016 International Conference on Verification, Model Checking, and Abstract Interpretation. Springer, Berlin (2016)

  25. Holzmann, G.J., Joshi, R., Groce, A.: Swarm verification. In: Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering, ASE ’08, pp. 1–6, Washington, DC, USA, (2008). IEEE Computer Society

  26. Holzmann, G.J., Joshi, R., Groce, A.: Swarm verification techniques. Softw. Eng. IEEE Trans. 37(6), 845–857 (2011)

    Article  Google Scholar 

  27. Hong, S., Kim, S.K., Oguntebi, T., Olukotun, K.: Accelerating CUDA graph algorithms at maximum warp. In: Proceedings of PPoPP ’11: the 16th ACM Symposium on Principles and Practice of Parallel Programming, pp. 267–276, (2011)

  28. Jenkins, B.: A hash function for hash table lookup. https://burtleburtle.net/bob/hash/doobs.html

  29. Kant, G., Laarman, A., Meijer, J., van de Pol, J., Blom, S., van Dijk, T.: LTSmin: high-performance language-independent model checking. In: Baier, C., Tinelli, C. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, pp. 692–707. Springer, Berlin (2015)

    Chapter  Google Scholar 

  30. Laarman, A., van de Pol, J., Weber, M.: Multi-core LTSmin: marrying modularity and scalability. In M. Bobaru, K. Havelund, G. Holzmann, and R. Joshi, (eds.) NASA Formal Methods, vol. 6617 of Lecture Notes in Computer Science, pp. 506–511. Springer, Berlin (2011)

  31. Luo, L., Wong, M., Hwu, W.: An effective GPU implementation of breadth-first search. In: Proceedings of DAC ’10: the 47th Design Automation Conference, DAC ’10, pp. 52–55, (2010)

  32. Neele, T., Wijs, A., Bošnački, D., van de Pol, J.: Partial-order reduction for GPU model checking. In: Automated Technology for Verification and Analysis: 14th International Symposium, ATVA 2016, Chiba, Japan, Proceedings, pp. 357–374. Springer International Publishing, (Oct. 2016)

  33. OpenCL technology™- intel.com. http://software.intel.com/OpenCL

  34. Spin-formal verification. https://spinroot.com/

  35. Tie, M.E.: Accelerating explicit state model checking on an FPGA: PHAST. Master’s thesis, Northeastern University, (2012)

  36. Verstoep, K., Bal, H., Barnat, J., Brim, L.: Efficient large-scale model checking. In: Parallel Distributed Processing, 2009. IPDPS 2009. IEEE International Symposium on, pp. 1–12, (May 2009)

  37. Wijs, A.: GPU accelerated strong and branching bisimilarity checking. In: Baier, C., Tinelli, C. (eds.) Tools and Algorithms for the Construction and Analysis of Systems, pp. 368–383. Springer, Berlin (2015)

    Chapter  Google Scholar 

  38. Wijs, A.: BFS-based model checking of linear-time properties with an application on GPUs. In: Computer Aided Verification: 28th International Conference, CAV 2016, Toronto, ON, Canada, Proceedings, Part II, pp. 472–493. Springer International Publishing, (July 2016)

  39. Wijs, A., Bos̆nac̆ki, D.: GPUexplore: Many-core on-the-fly state space exploration using GPUs. In E. Ábráham and K. Havelund, (eds) Proceedings of TACAS 2014: the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems

  40. Wijs, A., Neele, T., Bošnački, D.: GPUexplore 2.0: Unleashing GPU explicit-state model checking. In: Fitzgerald, J., Heitmeyer, C., Gnesi, S., Philippou, A. (eds.) FM 2016: Formal Methods, pp. 694–701. Springer International Publishing, Cham (2016)

    Chapter  Google Scholar 

  41. Wu, Z., Liu, Y., Sun, J., Shi, J., Qin, S.: GPU accelerated on-the-fly reachability checking. In: 2015 20th International Conference on Engineering of Complex Computer Systems (ICECCS), pp. 100–109, (2015)

  42. Xiao, S., chun Feng, W.: Inter-block GPU communication via fast barrier synchronization. In: Proceedings of IPDPS 2010: the IEEE International Symposium on Parallel Distributed Processing, pp. 1–12, (April 2010)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Richard DeFrancisco.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

DeFrancisco, R., Cho, S., Ferdman, M. et al. Swarm model checking on the GPU. Int J Softw Tools Technol Transfer 22, 583–599 (2020). https://doi.org/10.1007/s10009-020-00576-x

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-020-00576-x

Keywords

Navigation