# The Design of a Multicore Extension of the SPIN Model Checker

@article{Holzmann2007TheDO, title={The Design of a Multicore Extension of the SPIN Model Checker}, author={Gerard J. Holzmann and Dragan Bosnacki}, journal={IEEE Transactions on Software Engineering}, year={2007}, volume={33} }

We describe an extension of the SPIN model checker for use on multicore shared-memory systems and report on its performance. We show how, with proper load balancing, the time requirements of a verification run can, in some cases, be reduced close to N-fold when N processing cores are used. We also analyze the types of verification problems for which multicore algorithms cannot provide relief. The extensions discussed here require only relatively small changes in the SPIN source code and are…

## Figures and Tables from this paper

## 137 Citations

A Stack-Slicing Algorithm for Multi-Core Model Checking

- Computer ScienceElectron. Notes Theor. Comput. Sci.
- 2008

Parallelizing the Spin Model Checker

- Computer ScienceSPIN
- 2012

An extension of the Spin model checker is described that allows us to take advantage of the increasing number of cpu-cores available on standard desktop systems and a small modification of the parallel search algorithm, called the piggyback algorithm, that is remarkably effective in catching violations for an interesting class of liveness properties at little cost.

Distributed Verification of Multi-threaded C++ Programs

- Computer ScienceElectron. Notes Theor. Comput. Sci.
- 2008

Scalable Multi-core Model Checking Fairness Enhanced Systems

- Computer ScienceICFEM
- 2009

This work proposes an on-the-fly parallel model checking algorithm based on the Tarjan's strongly connected components (SCC) detection algorithm that can be applied to general LTL model checking or with different fairness assumptions and shows its usability via the automated verification of several real-life systems.

Scalable shared memory LTL model checking

- Computer ScienceInternational Journal on Software Tools for Technology Transfer
- 2010

A design for a parallel shared memory LTL model checker that is based on a distributed memory algorithm that exhibits significant speedup in comparison with sequential tools, which improves the workflow of verification in general.

Parallel Model Checking With Lazy Cycle Detection - MCLCD

- Computer Science
- 2011

New algorithms for exhaustive parallel model checking that are as efficient as possible, but also ''friendly'' with respect to the work-sharing policies that are used for the state space generation are presented.

Towards a GPGPU-parallel SPIN model checker

- Computer ScienceSPIN
- 2014

This work shows how the 2012 multicore CPU-parallel state-space exploration algorithm of the SPIN model checker can be re-engineered to take advantage of the unique parallel-processing capabilities of the GPGPU architecture, and demonstrates how to overcome the non-trivial design obstacles presented by this task.

Partial-Order Reduction for GPU Model Checking

- Computer ScienceATVA
- 2016

This work proposes novel parallel algorithms for three practical approaches to partial-order reduction for on-the-fly explicit-state model checking using GPUs, and shows that the implementation achieves a reduction similar to or better than the state-of- the-art techniques for CPUs.

Verifying Multi-threaded C Programs with SPIN

- Computer ScienceSPIN
- 2008

A tool for verifying multi-threaded C programs that uses the SPIN model checker that can check code aftercompiler optimizations, and a reduction method that reduces context switches using dynamic knowledge computed on-the-fly, while being sound for both safety and liveness properties.

Boosting multi-core reachability performance with shared hash tables

- Computer ScienceFormal Methods in Computer Aided Design
- 2010

The implementation outperforms two state-of-the-art multi-core model checkers, SPIN and DiVinE, by a large margin, while placing fewer constraints on the load balancing and search algorithms.

## References

SHOWING 1-10 OF 51 REFERENCES

A Stack-Slicing Algorithm for Multi-Core Model Checking

- Computer ScienceElectron. Notes Theor. Comput. Sci.
- 2008

Distributed-Memory Model Checking with SPIN

- Computer ScienceSPIN
- 1999

This paper explores the possibility of exploiting a distributed-memory execution environment, such as a network of workstations interconnected by a standard LAN, to extend the size of the verification problems that can be successfully handled by SPIN.

Parallelizing the Murϕ Verifier

- Computer ScienceFormal Methods Syst. Des.
- 2001

A parallel version of the explicit state enumeration verifier Murϕ for distributed memory multiprocessors and networks of workstations using the message passing paradigm shows close to linear speedups, which are largely insensitive to communication latency and bandwidth.

Parallelizing the Murphi Verifier

- Computer ScienceCAV
- 1997

A parallel version of the explicit state enumeration verifier Murϕ for distributed memory multiprocessors and networks of workstations that is based on the message passing paradigm shows close to linear speedups, which are largely insensitive to communication latency and bandwidth.

CTL* Model Checking on a Shared-Memory Architecture

- Computer ScienceElectron. Notes Theor. Comput. Sci.
- 2005

The analysis shows not only the practicality and effective speedup of the algorithm, but also the main pitfalls of parallelising model checking for shared-memory architectures.

Distributing Timed Model Checking - How the Search Order Matters

- Computer ScienceCAV
- 2000

This paper addresses the problem of distributing model checking of timed automata and shows how in the timed case the search order of the state space is crucial for the effectiveness and scalability of the exploration.

Combining partial order reductions with on-the-fly model-checking

- Computer ScienceFormal Methods Syst. Des.
- 1996

An extension of the model-checker SPIN, which implements this combination, is studied, showing substantial reduction over traditional search, not only in the number of reachable states, but directly in the amount of memory and time used.

Parallel breadth-first search LTL model-checking

- Computer Science18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings.
- 2003

This work proposes a practical parallel on-the-fly algorithm for enumerative LTL (linear temporal logic) model checking for cluster of workstations communicating via MPI (message passing interface) and shows promising results.

Distributed Explicit Fair Cycle Detection (Set Based Approach)

- Computer ScienceSPIN
- 2003

This paper presents a new distributed scalable algorithm for explicit fair cycle detection that combines the simplicity of the distribution of explicitly presented data structure and the features of symbolic algorithm allowing for an efficient parallelisation.

Distributed Explicit Fair Cycle Detection

- Computer Science
- 2003

This paper presents a new distributed scalable algorithm for explicit fair cycle detection that combines the simplicity of the distribution of explicitly presented data structure and the features of symbolic algorithm allowing for an efficient parallelisation.