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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
About CUDA: NVIDIA developer zone. https://developer.nvidia.com/about-cuda
Amazon EC2 P3 instances. https://aws.amazon.com/ec2/instance-types/p3/
BEEM: BEnchmarks for Explicit Model checkers-ParaDiSe. http://paradise.fi.muni.cz/beem/
CUDA C programming guide. https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
Green 500: TOP500 supercomputer sites. https://www.top500.org/green500/
OpenCL technologyā¢ - intel.com. http://software.intel.com/OpenCL
Spin-formal verification. http://spinroot.com/
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)
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)
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
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
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)
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)
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)
Ä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
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)
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)
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
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
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)
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)
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
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)
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
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
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)
Holzmann, G.J., Joshi, R., Groce, A.: Swarm verification techniques. IEEE Trans. Softw. Eng. 37(6), 845ā857 (2011)
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)
Jenkins, B.: A hash function for hash table lookup. https://burtleburtle.net/bob/hash/doobs.html
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
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
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)
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
Tie, M.E.: Accelerating explicit state model checking on an FPGA: PHAST. Masterās thesis, Northeastern University (2012)
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
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
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
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
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
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)
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2019 Springer Nature Switzerland AG
About this paper
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)