Abstract
We describe the motivations, technical problems and solutions behind the implementation of BeeDeeDee, a new thread-safe Java library for Binary Decision Diagrams (BDDs) manipulation. BeeDeeDee allows clients to share a single factory of BDDs, in real parallelism, and reduce the memory footprint of their overall execution, at a very low synchronization cost. We prove through experiments on multi-core computers that BeeDeeDee is an effective thread-safe library for BDD manipulation. As test cases, we consider multiple instances of the n-queens problem, the construction of circuits and the parallel execution of information flow static analyses of Java programs, for distinct properties of variables. For sequential-only executions, BeeDeeDee is faster than other non-thread-safe Java libraries and as fast as non-thread-safe C libraries.
Julia Srl has been partially supported by US Air Force contract n. FA8750-12-C-0174 as subcontractor of the University of Washington.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
2011 CWE/SANS Top 25 Most Dangerous Software Errors, http://cwe.mitre.org/top25
BuDDy, http://buddy.sourceforge.net
The Hadoop Big Data Engine, http://hadoop.apache.org
ITC99 Benchmark Circuits, http://www.cerc.utexas.edu/itc99-benchmarks/bench.html
The JavaBDD Library, http://javabdd.sourceforge.net
The Julia Static Analyzer, http://www.juliasoft.com
SableJBDD, http://www.sable.mcgill.ca/~fqian/SableJBDD
Armstrong, T., Marriott, K., Schachte, P., Søndergaard, H.: Two Classes of Boolean Functions for Dependency Analysis. Science of Computer Programming 31(1), 3–45 (1998)
Bahar, R.I., Frohm, E.A., Gaona, C.M., Hachtel, G.D., Macii, E., Pardo, A., Somenzi, F.: Algebraic Decision Diagrams and Their Applications. Formal Methods in System Design 10(2/3), 171–206 (1997)
Brace, K.S., Rudell, R.L., Bryant, R.E.: Efficient implementation of a BDD Package. In: DAC, pp. 40–45 (1990)
Bryant, R.E.: Graph-Based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers 35(8), 677–691 (1986)
Bryant, R.E.: Symbolic Boolean Manipulation with Ordered Binary Decision Diagrams. ACM Computing Surveys 24(3), 293–318 (1992)
Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic Model Checking: 1020 States and Beyond. Information and Computation 98(2), 142–170 (1992)
Genaim, S., Spoto, F.: Information Flow Analysis for Java Bytecode. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 346–362. Springer, Heidelberg (2005)
Lhoták, O., Curial, S., Amaral, J.N.: Using XBDDs and ZBDDs in Points-to Analysis. Software: Practive and Experience 39(2), 163–188 (2009)
Minato, S.: Zero-Suppressed BDDs for Set Manipulation in Combinatorial Problems. In: Proc. of Design Automation Conference, pp. 272–277 (1993)
Rossignoli, S., Spoto, F.: Detecting Non-Cyclicity by Abstract Compilation into Boolean Functions. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 95–110. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Lovato, A., Macedonio, D., Spoto, F. (2014). A Thread-Safe Library for Binary Decision Diagrams. In: Giannakopoulou, D., Salaün, G. (eds) Software Engineering and Formal Methods. SEFM 2014. Lecture Notes in Computer Science, vol 8702. Springer, Cham. https://doi.org/10.1007/978-3-319-10431-7_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-10431-7_4
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-10430-0
Online ISBN: 978-3-319-10431-7
eBook Packages: Computer ScienceComputer Science (R0)