Skip to main content

Swarm Model Checking on the GPU

  • Conference paper
  • First Online:
Model Checking Software (SPIN 2019)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 11636))

Included in the following conference series:

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 the various design parameters, including the size of the 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 chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

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. BEEM: BEnchmarks for Explicit Model checkers-ParaDiSe. http://paradise.fi.muni.cz/beem/

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

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

  6. OpenCL technologyā„¢ - intel.com. http://software.intel.com/OpenCL

  7. Spin-formal verification. http://spinroot.com/

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

    Google ScholarĀ 

  9. 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)

    ArticleĀ  Google ScholarĀ 

  10. Barnat, J., Brim, L., Ročkai, P.: Scalable multi-core LTL model-checking. In: BoÅ”nački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 187ā€“203. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73370-6_13

    ChapterĀ  MATHĀ  Google ScholarĀ 

  11. Barnat, J., Brim, L., StÅ™Ć­brnĆ”, J.: Distributed LTL model-checking in SPIN. In: Dwyer, M. (ed.) SPIN 2001. LNCS, vol. 2057, pp. 200ā€“216. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45139-0_13

    ChapterĀ  MATHĀ  Google ScholarĀ 

  12. 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)

    Google ScholarĀ 

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

    Google ScholarĀ 

  14. Cassee, N., Wijs, A.: Analysing the performance of GPU hash tables for state space exploration. Electron. Proc. Theor. Comput. Sci. (EPTCS) 263, 1ā€“15 (2017)

    ArticleĀ  MathSciNetĀ  Google ScholarĀ 

  15. Č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.) TACAS 2016. LNCS, vol. 9636, pp. 367ā€“384. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49674-9_21

    ChapterĀ  Google ScholarĀ 

  16. 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)

    Google ScholarĀ 

  17. Deng, Y., Wang, B.D., Mu, S.: Taming irregular EDA applications on GPUs. In: Proceedings of the ICCAD 2009 International Conference on Computer-Aided Design, ICCAD 2009, pp. 539ā€“546. ACM, New York (2009)

    Google ScholarĀ 

  18. Edelkamp, S., Sulewski, D.: Efficient explicit-state model checking on general purpose graphics processors. In: van de Pol, J., Weber, M. (eds.) SPIN 2010. LNCS, vol. 6349, pp. 106ā€“123. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16164-3_8

    ChapterĀ  Google ScholarĀ 

  19. Evangelista, S., Laarman, A., Petrucci, L., van de Pol, J.: Improved multi-core nested depth-first search. In: Chakraborty, S., Mukund, M. (eds.) ATVA 2012. LNCS, pp. 269ā€“283. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-33386-6_22

    ChapterĀ  Google ScholarĀ 

  20. 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)

    Google ScholarĀ 

  21. 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 2008, Washington, DC, USA, pp. 119ā€“126. IEEE Computer Society (2008)

    Google ScholarĀ 

  22. Harish, P., Narayanan, P.J.: Accelerating large graph algorithms on the GPU using CUDA. In: Aluru, S., Parashar, M., Badrinath, R., Prasanna, V.K. (eds.) HiPC 2007. LNCS, vol. 4873, pp. 197ā€“208. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-77220-0_21

    ChapterĀ  Google ScholarĀ 

  23. 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Ā 

  24. Holzmann, G.J.: Parallelizing the SPIN model checker. In: Donaldson, A., Parker, D. (eds.) SPIN 2012. LNCS, vol. 7385, pp. 155ā€“171. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-31759-0_12

    ChapterĀ  Google ScholarĀ 

  25. Holzmann, G.J.: Cloud-based verification of concurrent software. In: Jobstmann, B., Leino, K.R.M. (eds.) VMCAI 2016. LNCS, vol. 9583, pp. 311ā€“327. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49122-5_15

    ChapterĀ  Google ScholarĀ 

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

    Google ScholarĀ 

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

    ArticleĀ  Google ScholarĀ 

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

    Google ScholarĀ 

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

  30. 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.) TACAS 2015. LNCS, vol. 9035, pp. 692ā€“707. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-46681-0_61

    ChapterĀ  Google ScholarĀ 

  31. Laarman, A., van de Pol, J., Weber, M.: Multi-core LTSmin: marrying modularity and scalability. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 506ā€“511. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-20398-5_40

    ChapterĀ  Google ScholarĀ 

  32. Luo, L., Wong, M., Hwu, W.: An effective GPU implementation of breadth-first search. In: Proceedings of DAC 2010 47th Design Automation Conference, DAC 2010, pp. 52ā€“55 (2010)

    Google ScholarĀ 

  33. Neele, T., Wijs, A., BoÅ”nački, D., van de Pol, J.: Partial-order reduction for GPU model checking. In: Artho, C., Legay, A., Peled, D. (eds.) ATVA 2016. LNCS, vol. 9938, pp. 357ā€“374. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-46520-3_23

    ChapterĀ  Google ScholarĀ 

  34. Tie, M.E.: Accelerating explicit state model checking on an FPGA: PHAST. Masterā€™s thesis, Northeastern University (2012)

    Google ScholarĀ 

  35. Verstoep, K., Bal, H., Barnat, J., Brim, L.: Efficient large-scale model checking. In: 2009 IEEE International Symposium on Parallel Distributed Processing, IPDPS 2009, pp. 1ā€“12, May 2009

    Google ScholarĀ 

  36. Wijs, A.: GPU accelerated strong and branching bisimilarity checking. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 368ā€“383. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-46681-0_29

    ChapterĀ  Google ScholarĀ 

  37. Wijs, A.: BFS-based model checking of linear-time properties with an application on GPUs. In: Chaudhuri, S., Farzan, A. (eds.) CAV 2016. LNCS, vol. 9780, pp. 472ā€“493. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-41540-6_26

    ChapterĀ  Google ScholarĀ 

  38. Wijs, A., BoÅ”nački, D.: GPUexplore: many-core on-the-fly state space exploration using GPUs. In: ƁbrahĆ”m, E., Havelund, K. (eds.) TACAS 2014. LNCS, vol. 8413, pp. 233ā€“247. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54862-8_16

    ChapterĀ  Google ScholarĀ 

  39. 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. LNCS, vol. 9995, pp. 694ā€“701. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-48989-6_42

    ChapterĀ  Google ScholarĀ 

  40. 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)

    Google ScholarĀ 

  41. Xiao, S., Feng, W.C.: Inter-block GPU communication via fast barrier synchronization. In: Proceedings of the IPDPS 2010 IEEE International Symposium on Parallel Distributed Processing, pp. 1ā€“12, April 2010

    Google ScholarĀ 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Richard DeFrancisco .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

DeFrancisco, R., Cho, S., Ferdman, M., Smolka, S.A. (2019). Swarm Model Checking on the GPU. In: Biondi, F., Given-Wilson, T., Legay, A. (eds) Model Checking Software. SPIN 2019. Lecture Notes in Computer Science(), vol 11636. Springer, Cham. https://doi.org/10.1007/978-3-030-30923-7_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-30923-7_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-30922-0

  • Online ISBN: 978-3-030-30923-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics