Laissez-Faire Caching for Parallel #SAT Solving

  • Jan BurchardEmail author
  • Tobias Schubert
  • Bernd Becker
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9340)


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.


Component Tree Conjunctive Normal Form Variable Assignment Fault Injection Propositional Formula 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Garey, M.R., Johnson, D.S.: Computers and Intractability; A Guide to the Theory of NP-Completeness. W.H. Freeman & Co., New York (1990)zbMATHGoogle Scholar
  2. 2.
    Schubert, T., Lewis, M., Becker, B.: PaMiraXT: Parallel SAT solving with threads and message passing. Journal on Satisfiability, Boolean Modeling and Computation 6, 203–222 (2009)zbMATHGoogle Scholar
  3. 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
  4. 4.
    Hamadi, Y., Jabbour, S., Sais, L.: Manysat: a parallel SAT solver. Journal on Satisfiability, Boolean Modeling and Computation 6(4), 245–262 (2009)zbMATHGoogle Scholar
  5. 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
  6. 6.
    Thurley, M.: sharpSAT – counting models with advanced component caching and implicit BCP. In: Biere, A., Gomes, C.P. (eds.) SAT 2006. LNCS, vol. 4121, pp. 424–429. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  7. 7.
    Meel, K.S.: Sampling techniques for boolean satisfiability. CoRR abs/1404.6682 (2014)Google Scholar
  8. 8.
    Davis, M., Logemann, G., Loveland, D.: A machine program for theorem-proving. Commun. ACM 5(7), 394–397 (1962)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Bayardo, R.J., Pehoushek, J.D.: Counting models using connected components. In: AAAI National Conference, pp. 157–162 (2000)Google Scholar
  10. 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. 11.
    Schubert, T., Lewis, M., Becker, B.: Antom - solver description. SAT Race (2010)Google Scholar
  12. 12.
    Kempf, B.: The boost.threads library. C/C++ Users Journal (2002)Google Scholar
  13. 13.
    Sang, T., Beame, P., Kautz, H.: Heuristics for fast exact model counting. In: Bacchus, F., Walsh, T. (eds.) SAT 2005. LNCS, vol. 3569, pp. 226–240. Springer, Heidelberg (2005) CrossRefGoogle Scholar
  14. 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
  15. 15.
    Corno, F., Reorda, M.S., Squillero, G.: RT-level ITC’99 benchmarks and first ATPG results. IEEE Des. Test 17(3), 44–53 (2000)CrossRefGoogle Scholar
  16. 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. 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

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Albert-Ludwigs-University FreiburgFreiburgGermany

Personalised recommendations