A data parallel algorithm for Boolean function manipulation

This paper describes a data-parallel algorithm for boolean function manipulation. The algorithm adopts Binary Decision Diagrams (BDDs), which are the state-of-the-art approach for representing and handling boolean functions. The algorithm is well suited for SIMD architectures and is based on distributing BDD nodes to the available Processing Elements and traversing BDDs in a breadth-first manner. An improved version of the same algorithm is also presented, which does not use virtual processors. A prototypical package has been implemented and its behavior has been studied with two different applications. In both cases the results show that the approach exploits well the parallel hardware by effectively distributing the load; thanks to the limited CPU time required and to the great amount of memory available, it can solve problems that can not be faced with by conventional architectures.<<ETX>>

[1]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[2]  Randal E. Bryant,et al.  Efficient implementation of a BDD package , 1991, DAC '90.

[3]  David Bryan,et al.  Combinational profiles of sequential benchmark circuits , 1989, IEEE International Symposium on Circuits and Systems,.

[4]  M. Sonza Reorda,et al.  A data parallel approach to Boolean function manipulation using BDDs , 1994, Proceedings of the First International Conference on Massively Parallel Computing Systems (MPCS) The Challenges of General-Purpose and Special-Purpose Computing.

[5]  Hiroyuki Ochi,et al.  Breadth-first manipulation of SBDD of boolean functions for vector processing , 1991, 28th ACM/IEEE Design Automation Conference.

[6]  F. Brglez,et al.  A neutral netlist of 10 combinational benchmark circuits and a target translator in FORTRAN , 1985 .

[7]  Paolo Prinetto,et al.  Finding the Maximurn Clique in a Graph Using BDDs , 1993 .

[8]  Edmund M. Clarke,et al.  A parallel algorithm for constructing binary decision diagrams , 1990, Proceedings., 1990 IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[9]  Farokh B. Bastani,et al.  Hash table in massively parallel systems , 1992, Proceedings Sixth International Parallel Processing Symposium.

[10]  Silvano Gai,et al.  Boolean function manipulation on massively parallel computers , 1992, [Proceedings 1992] The Fourth Symposium on the Frontiers of Massively Parallel Computation.

[11]  Frank M. Brown,et al.  Boolean reasoning - the logic of boolean equations , 1990 .