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… 
A Stack-Slicing Algorithm for Multi-Core Model Checking
  • G. Holzmann
  • Computer Science
    Electron. Notes Theor. Comput. Sci.
  • 2008
Parallelizing the Spin Model Checker
TLDR
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
Scalable Multi-core Model Checking Fairness Enhanced Systems
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
  • G. Holzmann
  • Computer Science
    Electron. Notes Theor. Comput. Sci.
  • 2008
Distributed-Memory Model Checking with SPIN
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
  • D. Peled
  • Computer Science
    Formal Methods Syst. Des.
  • 1996
TLDR
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
  • J. Barnat, L. Brim, J. Chaloupka
  • Computer Science
    18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings.
  • 2003
TLDR
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)
TLDR
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
TLDR
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.
...
...