We follow up on the idea of Lars Arge to rephrase the Reduce and Apply algorithms of Binary Decision Diagrams (BDDs) as iterative I/O-efficient algorithms. We identify multiple avenues to improve the performance of his proposed algorithms and extend the technique to other basic BDD algorithms. These algorithms are implemented in a new BDD library, named Adiar. We see very promising results when comparing the performance of Adiar with conventional BDD libraries that use recursive depth-first algorithms. For instances of about 50 GiB, our algorithms, using external memory, are only up to 3.9 times slower compared to Sylvan, exclusively using internal memory. Yet, our proposed techniques are able to obtain this performance at a fraction of the internal memory needed by Sylvan to function. Furthermore, with Adiar we are able to manipulate BDDs that outgrow main memory and so surpass the limits of the other BDD libraries.
翻译:我们跟踪Lars Arge的想法,将二进制决定图(BDDs)的减少和应用算法改写为迭代 I/O-效率算法。我们找出多种途径来改进他提议的算法的性能,并将这种技术推广到其他基本的BDD算法。这些算法是在一个新的BDD图书馆(名为Adiar)中实施的。在将Adiar的性能与使用循环深度第一算法的传统的BDD图书馆进行比较时,我们看到非常有希望的结果。对于大约50个GIB的情况,我们使用外部内存的算法比Sylvan慢了3.9倍,仅使用内部内存。然而,我们提议的技术能够在Sylvan运行所需的内部内存的一小部分内存中取得这种性能。此外,Adiar能够操纵超出主内存的BDDs,从而超过其他BDDD图书馆的极限。