Laissez-Faire Caching for Parallel #SAT Solving
The problem of counting the number of satisfying assignments of a propositional formula (#SAT) can be considered to be the big brother of the well known SAT problem. However, the higher computational complexity and a lack of fast solvers currently limit its usability for real world problems.
Similar to SAT, utilizing the parallel computation power of modern CPUs could greatly increase the solving speed in the realm of #SAT. However, in comparison to SAT there is an additional obstacle for the parallelization of #SAT that is caused by the usage of conflict learning together with the #SAT specific techniques of component caching and sub-formula decomposition. The combination can result in an incorrect final result being computed due to incorrect values in the formula cache. This problem is easily resolvable in a sequential solver with a depth-first node order but requires additional care and handling in a parallel one. In this paper we introduce laissez-faire caching which allows for an arbitrary node computation order in both a sequential and parallel solver while ensuring a correct final result. Additionally, we apply this new caching approach to build countAntom, the world’s first parallel #SAT-solver.
Our experimental results clearly show that countAntom achieves considerable speedups through the parallel computation while maintaining correct results on a large variety of benchmarks coming from different real-world applications. Moreover, our analysis indicates that laissez-faire caching only adds a small computational overhead.
KeywordsComponent Tree Conjunctive Normal Form Variable Assignment Fault Injection Propositional Formula
Unable to display preview. Download preview PDF.
- 3.Biere, A.: Lingeling, plingeling and treengeling entering the sat competition 2013. In: Proceedings of SAT Competition 2013. vol. B-2013-1. University of Helsinki, Department of Computer Science Series of Publications (2013)Google Scholar
- 5.Sang, T., Bacchus, F., Beame, P., Kautz, H.A., Pitassi, T.: Combining component caching and clause learning for effective model counting. In: SAT 2004 - The Seventh International Conference on Theory and Applications of Satisfiability Testing 10–13 May 2004 Vancouver BC Canada Online Proceedings (2004)Google Scholar
- 7.Meel, K.S.: Sampling techniques for boolean satisfiability. CoRR abs/1404.6682 (2014)Google Scholar
- 9.Bayardo, R.J., Pehoushek, J.D.: Counting models using connected components. In: AAAI National Conference, pp. 157–162 (2000)Google Scholar
- 10.Bacchus, F., Dalmao, S., Pitassi, T.: Algorithms and complexity results for #sat and bayesian inference. In: 44th annual IEEE Symposium on Foundations of Computer Science (FOCS), pp. 340–351 (2004)Google Scholar
- 11.Schubert, T., Lewis, M., Becker, B.: Antom - solver description. SAT Race (2010)Google Scholar
- 12.Kempf, B.: The boost.threads library. C/C++ Users Journal (2002)Google Scholar
- 14.Sauer, M., Burchard, J., Schubert, T., Polian, I., Becker, B.: Waveform-guided fault injection by clock manipulation. In: TRUDEVICE: First Workshop on Trustworthy Manufacturing and Utilization of Secure Devices (2013)Google Scholar
- 16.Brglez, F., Bryan, D., Kozminski, K.: Combinational profiles of sequential benchmark circuits. In: IEEE International Symposium on Circuits and Systems, vol. 3, pp. 1929–1934 (1989)Google Scholar
- 17.Brglez, F., Fujiwara, H.: A neutral netlist of 10 combinational benchmark circuits and a target translator in fortran. In: Proceedings of IEEE Int’l Symposium Circuits and Systems (ISCAS 1985), pp. 677–692. IEEE Press, Piscataway (1985)Google Scholar