A classical mind
PRA*: massively parallel heuristic search
Journal of Parallel and Distributed Computing
An improvement in formal verification
Proceedings of the 7th IFIP WG6.1 International Conference on Formal Description Techniques VII
Parallelizing the Murphi Verifier
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Efficient reduction of finite state model checking to reachability analysis
International Journal on Software Tools for Technology Transfer (STTT)
Parallel Randomized State-Space Search
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The Design of a Multicore Extension of the SPIN Model Checker
IEEE Transactions on Software Engineering
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Tackling Large Verification Problems with the Swarm Tool
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Linear-time disk-based implicit graph search
Journal of the ACM (JACM)
Structured duplicate detection in external-memory graph search
AAAI'04 Proceedings of the 19th national conference on Artifical intelligence
Parallel structured duplicate detection
AAAI'07 Proceedings of the 22nd national conference on Artificial intelligence - Volume 2
Best-first heuristic search for multicore machines
Journal of Artificial Intelligence Research
Parallel external directed model checking with linear i/o
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Improving spin's partial-order reduction for breadth-first search
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Hi-index | 0.00 |
Many model checking techniques are based on enumerative graph search, a procedure that is known to be prohibitively time and memory consuming. Modern multi-core processors rely on parallelism instead of raw clock speed to provide increased performance, so it is necessary to leverage this parallelism to achieve better performance in model checking. In this work, we compare hash-distributed search, a well-known parallel search technique for model checking, with an algorithm from the automated planning and heuristic search community called Parallel Structured Duplicate Detection (PSDD). We show that PSDD has two major advantages over hash-distributed search for multi-core model checking. First, PSDD is able to perform full partial-order reduction where hash-distributed search must be conservative and subsequently miss reduction opportunities in many cases, causing it to search a much larger space. Second, PSDD performs duplicate detection on states immediately, avoiding the need to store duplicate states for inter-thread communication. We have implemented and compared both techniques in the Spin model checker; our results show that PSDD uses significantly less memory than hash-distributed search, can be faster and give better parallel speedup than both hash-distributed search and Spin's built-in parallel depth-first search. Finally, we show how PSDD can use external memory, such as disk storage, to greatly reduce its internal memory requirements.