Multi-Core BDD Operations for Symbolic Reachability



Published in: PDMC pp 127–143

DOI: 10.1016/j.entcs.2013.07.009



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%.

BibTeX entry:

 author = {Tom van Dijk and Alfons Laarman and Jaco van de Pol},
 booktitle = {PDMC},
 doi = {10.1016/j.entcs.2013.07.009},
 pages = {127--143},
 series = {ENTCS},
 title = {Multi-Core {BDD} Operations for Symbolic Reachability},
 volume = {296},
 year = {2012}