Efficient parallel binary decision diagram construction using Cilk

Binary Decision Diagrams are theoretical data structures used for formal verification of protocols and digital circuits. Previously, parallel computing algorithms designed to create these structures have experienced limited success due to their inability to exploit the inherent parallelism in the binary decision diagram creation problem. The CilkBDD algorithm uses Cilk, a C-based multithreaded language, to expose this parallelism, which this paper contends is chiefly limited by the size of the BDD being created. The algorithm incorporates hash tables and data caches into basic BDD manipulation algorithms. Despite causing an increase in computation time over previous algorithms, this approach results in a more direct software system, and thus a more optimal parallel approach, with less memory and processor overhead. Ultimately, CilkBDD is able to use multiple processors 10-33% more effectively than other parallel BDD algorithms, and parallelism statistics indicate that as more processors are applied, the processor usage continues to increase. Thesis Supervisor: Charles Leiserson Title: Head, Supercomputing Technologies Group, MIT Lab for Computer Science