Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Efficient implementation of a BDD package
DAC '90 Proceedings of the 27th ACM/IEEE Design Automation Conference
Shared binary decision diagram with attributed edges for efficient Boolean function manipulation
DAC '90 Proceedings of the 27th ACM/IEEE Design Automation Conference
Breadth-first manipulation of SBDD of Boolean functions for vector processing
DAC '91 Proceedings of the 28th ACM/IEEE Design Automation Conference
High performance BDD package by exploiting memory hierarchy
DAC '96 Proceedings of the 33rd annual Design Automation Conference
Implementation of an efficient parallel BDD package
DAC '96 Proceedings of the 33rd annual Design Automation Conference
Parallel breadth-first BDD construction
PPOPP '97 Proceedings of the sixth ACM SIGPLAN symposium on Principles and practice of parallel programming
Distributed Binary Decision Diagrams for Verification of Large Circuit
ICCD '96 Proceedings of the 1996 International Conference on Computer Design, VLSI in Computers and Processors
Boolean Function Manipulation on a Parallel System Using BDDs
HPCN Europe '97 Proceedings of the International Conference and Exhibition on High-Performance Computing and Networking
BDDNOW: A Parallel BDD Package
FMCAD '98 Proceedings of the Second International Conference on Formal Methods in Computer-Aided Design
An improved data parallel algorithm for Boolean function manipulation using BDDs
PDP '95 Proceedings of the 3rd Euromicro Workshop on Parallel and Distributed Processing
QEST '04 Proceedings of the The Quantitative Evaluation of Systems, First International Conference
SMART: The Stochastic Model checking Analyzer for Reliability and Timing
QEST '04 Proceedings of the The Quantitative Evaluation of Systems, First International Conference
Proceedings of the 42nd annual Design Automation Conference
A work-efficient distributed algorithm for reachability analysis
Formal Methods in System Design
IEEE Transactions on Computers
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
Parallelising symbolic state-space generators
CAV'07 Proceedings of the 19th international conference on Computer aided verification
BEEM: benchmarks for explicit model checkers
Proceedings of the 14th international SPIN conference on Model checking software
Efficient Work Stealing for Fine Grained Parallelism
ICPP '10 Proceedings of the 2010 39th International Conference on Parallel Processing
Parallelizing a symbolic compositional model-checking algorithm
HVC'10 Proceedings of the 6th international conference on Hardware and software: verification and testing
Boosting multi-core reachability performance with shared hash tables
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
LTSMIN: distributed and symbolic reachability
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Ten years of saturation: a petri net perspective
Transactions on Petri Nets and Other Models of Concurrency V
Symbolic model checking for sequential circuit verification
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
SpinS: Extending LTSmin with Promela through SpinJa
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
This paper presents scalable parallel BDD operations for modern multi-core hardware. We aim at increasing the performance of reachability analysis in the context of model checking. Existing approaches focus on performing multiple independent BDD operations rather than parallelizing the BDD operations themselves. In the past, attempts at parallelizing BDD operations have been unsuccessful due to communication costs in shared memory. We solved this problem by extending an existing lockless hashtable to support BDDs and garbage collection and by implementing a lockless memoization table. Using these lockless hashtables and the work-stealing framework Wool, we implemented a multi-core BDD package called Sylvan. We provide the experimental results of using this multi-core BDD package in the framework of the model checker LTSmin. We measured the runtime of the reachability algorithm on several models from the BEEM model database on a 48-core machine, demonstrating speedups of over 30 for some models, which is a breakthrough compared to earlier work. In addition, we improved the standard symbolic reachability algorithm to use a modified BDD operation that calculates the relational product and the variable substitution in one step. We show that this new algorithm improves the performance of symbolic reachability and decreases the memory requirements by up to 40%.