Efficient Probabilistic Model Checking on General Purpose Graphics Processors

We present algorithms for parallel probabilistic model checking on general purpose graphic processing units (GPGPUs). For this purpose we exploit the fact that some of the basic algorithms for probabilistic model checking rely on matrix vector multiplication. Since this kind of linear algebraic operations are implemented very efficiently on GPGPUs, the new parallel algorithms can achieve considerable runtime improvements compared to their counterparts on standard architectures. We implemented our parallel algorithms on top of the probabilistic model checker PRISM. The prototype implementation was evaluated on several case studies in which we observed significant speedup over the standard CPU implementation of the tool.

[1]  Ted Herman,et al.  Probabilistic Self-Stabilization , 1990, Information Processing Letters.

[2]  William J. Stewart,et al.  Introduction to the numerical solution of Markov Chains , 1994 .

[3]  Antti Valmari,et al.  The State Explosion Problem , 1996, Petri Nets.

[4]  Wolfgang Reisig,et al.  Lectures on Petri Nets I: Basic Models , 1996, Lecture Notes in Computer Science.

[5]  David L. Dill,et al.  Parallelizing the Murphi Verifier , 1997, CAV.

[6]  Graham Horton,et al.  State space construction and steady-state solution of GSPNs on a shared-memory multiprocessor , 1997, Proceedings of the Seventh International Workshop on Petri Nets and Performance Models.

[7]  Mieke Massink,et al.  Theoretical and Practical Aspects of SPIN Model Checking , 1999, Lecture Notes in Computer Science.

[8]  Flavio Lerda,et al.  Distributed-Memory Model Checking with SPIN , 1999, SPIN.

[9]  M. Siegle,et al.  Multi Terminal Binary Decision Diagrams to Represent and Analyse Continuous Time Markov Chains , 1999 .

[10]  Joost-Pieter Katoen,et al.  On the use of model checking techniques for dependability evaluation , 2000, Proceedings 19th IEEE Symposium on Reliable Distributed Systems SRDS-2000.

[11]  Gianfranco Ciardo,et al.  Distributed and Structured Analysis Approaches to Study Large and Complex Systems , 2002, European Educational Forum: School on Formal Methods and Performance Analysis.

[12]  Ramon Puigjaner,et al.  Computer Performance Evaluation , 2000, Lecture Notes in Computer Science.

[13]  David L. Dill,et al.  Parallelizing the Murϕ Verifier , 2001, Formal Methods Syst. Des..

[14]  Lubos Brim,et al.  Distributed LTL model-checking in SPIN , 2001, SPIN '01.

[15]  Howard Barringer,et al.  Effective State Exploration for Model Checking on a Shared Memory Architecture , 2002, PDMC@CONCUR.

[16]  Marta Z. Kwiatkowska,et al.  PRISM: Probabilistic Symbolic Model Checker , 2002, Computer Performance Evaluation / TOOLS.

[17]  Christel Baier,et al.  Model-Checking Algorithms for Continuous-Time Markov Chains , 2002, IEEE Trans. Software Eng..

[18]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[19]  Laxmikant V. Kalé,et al.  Scalable molecular dynamics with NAMD , 2005, J. Comput. Chem..

[20]  Bengt Jonsson,et al.  A logic for reasoning about time and reliability , 1990, Formal Aspects of Computing.

[21]  Howard Barringer,et al.  CTL* model checking on a shared-memory architecture , 2005, Formal Methods Syst. Des..

[22]  Boudewijn R. Haverkort,et al.  Distributed disk-based algorithms for model checking very large Markov chains , 2006, Formal Methods Syst. Des..

[23]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[24]  Stefan Edelkamp,et al.  Large-Scale Directed Model Checking LTL , 2006, SPIN.

[25]  Blai Bonet,et al.  External Memory Value Iteration , 2007, ICAPS.

[26]  Ami Marowka Parallel computing on any desktop , 2007, CACM.

[27]  Marta Z. Kwiatkowska,et al.  Stochastic Model Checking , 2007, SFM.

[28]  Jan Holmström,et al.  Design patterns for managing product life cycle information , 2007, CACM.

[29]  Lubos Brim,et al.  I/O Efficient Accepting Cycle Detection , 2007, CAV.

[30]  Dragan Bosnacki,et al.  The Design of a Multicore Extension of the SPIN Model Checker , 2007, IEEE Transactions on Software Engineering.

[31]  Lubos Brim,et al.  Scalable Multi-core LTL Model-Checking , 2007, SPIN.

[32]  Allan Clark,et al.  Formal Methods for Performance Evaluation , 2007 .

[33]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[34]  Dragan Bosnacki,et al.  Multi-Core Model Checking with SPIN , 2007, 2007 IEEE International Parallel and Distributed Processing Symposium.

[35]  Stefan Edelkamp,et al.  Flash-Efficient LTL Model Checking with Minimal Counterexamples , 2008, 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods.

[36]  Christel Baier,et al.  Principles of model checking , 2008 .

[37]  Lubos Brim,et al.  Revisiting Resistance Speeds Up I/O-Efficient LTL Model Checking , 2008, TACAS.

[38]  Peng Dai,et al.  Partitioned External-Memory Value Iteration , 2008, AAAI.

[39]  Lubos Brim,et al.  ProbDiVinE-MC: Multi-core LTL Model Checker for Probabilistic Systems , 2008, 2008 Fifth International Conference on Quantitative Evaluation of Systems.

[40]  Christel Baier,et al.  Principles of Model Checking (Representation and Mind Series) , 2008 .

[41]  Peter Sanders,et al.  Semi-external LTL Model Checking , 2008, CAV.

[42]  Model Checking via Delayed Duplicate Detection on the GPU , 2008 .

[43]  Rajesh Bordawekar,et al.  Optimizing Sparse Matrix-Vector Multiplication on GPUs using Compile-time and Run-time Strategies , 2008 .

[44]  Lubos Brim,et al.  Efficient large-scale model checking , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.