skip to main content
research-article

Study of Fine-grained Nested Parallelism in CDCL SAT Solvers

Published: 20 September 2021 Publication History

Abstract

Boolean satisfiability (SAT) is an important performance-hungry problem with applications in many problem domains. However, most work on parallelizing SAT solvers has focused on coarse-grained, mostly embarrassing, parallelism. Here, we study fine-grained parallelism that can speed up existing sequential SAT solvers, which all happen to be of the so-called Conflict-Directed Clause Learning variety. We show the potential for speedups of up to 382× across a variety of problem instances. We hope that these results will stimulate future research, particularly with respect to a computer architecture open problem we present.

References

[1]
Gilles Audemard and Laurent Simon. 2009. Predicting learnt clauses quality in modern SAT solvers. In Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI’09). 399–404.
[2]
Gilles Audemard and Laurent Simon. 2014. Lazy clause exchange policy for parallel SAT solvers. In Proceedings of the International Conference on Theory and Applications of Satisfiability Testing (SAT’14). 197–205. https://doi.org/10.1007/978-3-319-09284-3_15
[3]
Roberto J. Bayardo and Daniel P. Miranker. 1996. A complexity analysis of space-bounded learning algorithms for the constraint satisfaction problem. In Proceedings of the 13th National Conference on Artificial Intelligence (AAAI), Volume 1. 298–304.
[4]
Armin Biere. 2010. Lingeling, Plingeling, PicoSAT and PrecoSAT at SAT Race 2010. Technical Report. Johannes Kepler University, Linz, Austria.
[5]
Armin Biere. 2012. Lingeling and friends entering the SAT challenge 2012. In Proceedings of SAT Challenge 2012: Solver and Benchmark Descriptions. 33–34.
[6]
Armin Biere. 2017. CaDiCaL, lingeling, plingeling, treengeling and yalsat entering the SAT competition 2017. In Proceedings of SAT Competition 2017: Solver and Benchmark Descriptions, Tomáš Balyo, Marijn Heule, and Matti Järvisalo (Eds.). University of Helsinki, 14–15. http://hdl.handle.net/10138/224324.
[7]
Armin Biere, Katalin Fazekas, Mathias Fleury, and Maximilian Heisinger. 2020. CaDiCaL, kissat, paracooba, plingeling and treengeling entering the SAT competition 2020. In Proceedings of SAT Competition 2020: Solver and Benchmark Descriptions, Tomáš Balyo, Nils Froleyks, Marijn J.H. Heule, Markus Iser, Matti Järvisalo, and Martin Suda (Eds.). University of Helsinki, 50–53. http://hdl.handle.net/10138/318450.
[8]
G. E. Blelloch. 1989. Scans as primitive parallel operations. IEEE Trans. Comput. 38, 11 (1989), 1526–1538. https://doi.org/10.1109/12.42122
[9]
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou. 1995. Cilk: An efficient multithreaded runtime system. ACM SIGPLAN Not. 30, 8 (Aug. 1995), 207–216. https://doi.org/10.1145/209937.209958
[10]
Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. 2008. EXE: Automatically generating inputs of death. ACM Trans. Inf. Syst. Secur. 12, 2 (2008). https://doi.org/10.1145/1455518.1455522
[11]
George C. Caragea, Fuat Keceli, Alexandros Tzannes, and Uzi Vishkin. 2010. General-purpose vs. GPU: Comparison of many-cores on irregular workloads. In Proceedings of the 2nd Workshop on Hot Topics in Parallelism (HotPar’10). USENIX.
[12]
Carlos Filipe Costa. 2014. Parallelization of SAT Algorithms on GPU. Master’s thesis. Instituto Superior Técnico, University of Lisbon.
[13]
David Culler, Richard Karp, David Patterson, Abhijit Sahay, Klaus Erik Schauser, Eunice Santos, Ramesh Subramonian, and Thorsten von Eicken. 1993. LogP: Towards a realistic model of parallel computation. In Proceedings of the 4th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’93). 1–12. https://doi.org/10.1145/155332.155333
[14]
Alessandro Dal Palù, Agostino Dovier, Andrea Formisano, and Enrico Pontelli. 2015. CUD@SAT: SAT solving on GPUs. J. Exp. Theor. Artif. Intell. 27, 3 (May 2015), 293–316. https://doi.org/10.1080/0952813X.2014.954274
[15]
Martin Davis, George Logemann, and Donald Loveland. 1962. A machine program for theorem-proving. Commun. ACM 5, 7 (Jul. 1962), 394–397. https://doi.org/10.1145/368273.368557
[16]
Rina Dechter. 1990. Enhancement schemes for constraint processing: Backjumping, learning, and cutset decomposition. Artif. Intell. 41, 3 (Jan. 1990), 273–312. https://doi.org/10.1016/0004-3702(90)90046-3
[17]
Rina Dechter. 2003. Constraint Processing. Morgan Kaufmann, San Francisco, CA.
[18]
Vassilios V. Dimakopoulos, Panagiotis E. Hadjidoukas, and Giorgos Ch Philos. 2008. A microbenchmark study of OpenMP overheads under nested parallelism. In Proceedings of the International Workshop on OpenMP (IWOMP’08). https://doi.org/10.1007/978-3-540-79561-2_1
[19]
Niklas Eén and Niklas Sörensson. 2003. An extensible SAT-solver. In Proceedings of the International Conference on Theory and Applications of Satisfiability Testing (SAT’03), Enrico Giunchiglia and Armando Tacchella (Eds.). Springer, Berlin, 502–518. https://doi.org/10.1007/978-3-540-24605-3_37
[20]
Martin Elsman, Troels Henriksen, and Cosmin E. Oancea. 2018. Parallel programming in Futhark. Retrieved from https://futhark-book.readthedocs.io/en/latest/.
[21]
Zhaohui Fu and Sharad Malik. 2006. On solving the partial MAX-SAT problem. In Proceedings of the International Conference on Theory and Applications of Satisfiability Testing (SAT’06). https://doi.org/10.1007/11814948_25
[22]
Hironori Fujii and Noriyuki Fujimoto. 2012. GPU acceleration of BCP procedure for SAT algorithms. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’12).
[23]
Fady Ghanim, Uzi Vishkin, and Rajeev Barua. 2018. Easy PRAM-based high-performance parallel programming with ICE. IEEE Trans. Parallel Distrib. Syst. 29, 2 (Feb. 2018), 377–390. https://doi.org/10.1109/TPDS.2017.2754376
[24]
Joseph Gil, Yossi Matias, and Uzi Vishkin. 1991. Towards a theory of nearly constant time parallel algorithms. In Proceedings of the 32nd Annual Symposium of Foundations of Computer Science. IEEE Computer Society Press, 698–710. https://doi.org/10.1109/SFCS.1991.185438
[25]
Seth Copen Goldstein. 1997. Lazy Threads: Compiler and Runtime Stuctures for Fine-Grained Programming. Ph.D. Dissertation. University of California–Berkeley, Berkeley, CA.
[26]
Seth Copen Goldstein, Klaus Erik Schauser, and David E. Culler. 1996. Lazy threads: Implementing a fast parallel call. J. Parallel Distrib. Comput. 37, 1 (Aug. 1996), 5–20. https://doi.org/10.1006/jpdc.1996.0104
[27]
Carla P. Gomes, Henry Kautz, Ashish Sabharwal, and Bart Selman. 2008. Satisfiability solvers. In Handbook of Knowledge Representation, F. van Harmelen, V. Lifschitz, and B. Porter (Eds.). Vol. 3. Chapter 2, 89–134. https://doi.org/10.1016/S1574-6526(07)03002-7
[28]
Weiwei Gong and Xu Zhou. 2017. A survey of SAT solver. In AIP Conference Proceedings, Vol. 1836. https://doi.org/10.1063/1.4981999
[29]
Aarti Gupta, Malay K. Ganai, and Chao Wang. 2006. SAT-based verification methods and applications in hardware verification. In Proceedings of the International School on Formal Methods for the Design of Computer, Communication, and Software Systems (SFM’06). 108–143. https://doi.org/10.1007/11757283_5
[30]
Marijn Heule, Matti Järvisalo, and Martin Suda (Eds.). 2018. Proceedings of SAT Competition 2018—Solver and Benchmark Descriptions. Vol. B-2018-1. Department of Computer Science, University of Helsinki.
[31]
Marijn J. H. Heule, Oliver Kullmann, and Victor W. Marek. 2017. Solving very hard problems: Cube-and-conquer, a hybrid SAT solving method. In Proceedings of the 26th International Joint Conference on Artificial Intelligence. 4864–4868. https://doi.org/10.24963/ijcai.2017/683
[32]
Joseph JáJá. 1992. An Introduction to Parallel Algorithms. Vol. 17. Addison-Wesley Reading.
[33]
Matti Järvisalo, Marijn J. H. Heule, and Armin Biere. 2012. Inprocessing rules. In Proceedings of the International Joint Conference on Automated Reasoning (IJCAR’12). 355–370. https://doi.org/10.1007/978-3-642-31365-3_28
[34]
Fuat Keceli. 2011. Power and Performance Studies of the Explicit Multi-Threading (XMT) Architecture. Ph.D. Dissertation. University of Maryland.
[35]
Jörg Keller, Christoph Kessler, and Jesper Träff. 2001. Practical PRAM Programming. Wiley-Interscience, New York, NY.
[36]
Daniel Kroening and Ofer Strichman. 2008. Decision Procedures: An Algorithmic Point of View. Springer-Verlag, Berlin. https://doi.org/10.1007/978-3-540-74105-3
[37]
Monica S. Lam and Robert P. Wilson. 1992. Limits of control flow on parallelism. ACM SIGARCH Comput. Arch. News 20, 2 (Apr. 1992), 46–57. https://doi.org/10.1145/146628.139702
[38]
Jia Hui Liang et al. 2018. MapleSAT: Combining Machine Learning and Deduction in SAT solvers. Retrieved Junary 8, 2021 from https://sites.google.com/a/gsd.uwaterloo.ca/maplesat/.
[39]
Jia Hui Liang, Vijay Ganesh, Pascal Poupart, and Krzysztof Czarnecki. 2016. Learning rate based branching heuristic for SAT solvers. In Proceedings of the SAT 2016: Theory and Applications of Satisfiability Testing. 123–140. https://doi.org/10.1007/978-3-319-40970-2_9
[40]
Jia Hui Liang, Vijay Ganesh, Ed Zulkoski, Atulan Zaman, and Krzysztof Czarnecki. 2015. Understanding VSIDS branching heuristics in conflict-driven clause-learning SAT solvers. In Proceedings of the International Haifa Verification Conference (HVC’15). 225–241. https://doi.org/10.1007/978-3-319-26287-1_14
[41]
Mark H. Liffiton and Karem A. Sakallah. 2008. Algorithms for computing minimal unsatisfiable subsets of constraints. J. Autom. Reason. 40, 1 (Jan. 2008), 1–33. https://doi.org/10.1007/s10817-007-9084-z
[42]
Salem Malikic, Simone Ciccolella, Farid Rashidi Mehrabadi, Camir Ricketts, Md. Khaledur Rahman, Ehsan Haghshenas, Daniel Seidman, Faraz Hach, Iman Hajirasouliha, and S. Cenk Sahinalp. 2019. —A combinatorial approach for sub-perfect tumor phylogeny reconstruction via integrative use of single cell and bulk sequencing data. Genome Research 29, 11 (Nov. 2019), 1860–1877. https://doi.org/10.1101/gr.234435.118
[43]
Marcos Maronas, Kevin Sala, Sergi Mateo, Eduard Ayguade, and Vicenc Beltran. 2019. Worksharing tasks: An efficient way to exploit irregular and fine-grained loop parallelism. In Proceedings of the 2019 IEEE 26th International Conference on High Performance Computing, Data, and Analytics (HiPC’19). 383–394. https://doi.org/10.1109/HiPC.2019.00053
[44]
Joao Marques-Silva. 2008. Practical applications of boolean satisfiability. In Proceedings of the 9th International Workshop on Discrete Event Systems. IEEE, 74–80. https://doi.org/10.1109/WODES.2008.4605925
[45]
Quirin Meyer, F. Schönfeld, Marc Stamminger, and Rolf Wanka. 2010. 3-SAT on CUDA: Towards a massively parallel SAT solver. In Proceedings of the International Conference on High Performance Computing & Simulation. 306–313. https://doi.org/10.1109/HPCS.2010.5547116
[46]
Ilya Mironov and Lintao Zhang. 2006. Applications of SAT solvers to cryptanalysis of hash functions. In Proceedings of the International Conference on Theory and Applications of Satisfiability Testing. 102–115. https://doi.org/10.1007/11814948_13
[47]
Eric Mohr, David A. Kranz, and Robert H. Halstead. 1990. Lazy task creation: A technique for increasing the granularity of parallel programs. In Proceedings of the 1990 ACM Conference on LISP and Functional Programming (LFP’90). 185–197. https://doi.org/10.1145/91556.91631
[48]
Antonio Morgado, Federico Heras, and Joao Marques-Silva. 2013. Model-guided approaches for MaxSAT solving. In Proceedings of the International Conference on Tools with Artificial Intelligence. IEEE, 931–938. https://doi.org/10.1109/ICTAI.2013.142
[49]
Matthew W. Moskewicz, Conor F. Madigan, Ying Zhao, Lintao Zhang, and Sharad Malik. 2001. Chaff: Engineering an efficient SAT solver. In Proceedings of the 38th Conference on Design Automation (DAC’01). ACM Press, New York, NY, 530–535. https://doi.org/10.1145/378239.379017
[50]
Alexander Nadel. 2018. Solving MaxSAT with bit-vector optimization. In Proceedings of the International Conference on Theory and Applications of Satisfiability Testing (SAT’18). 54–72. https://doi.org/10.1007/978-3-319-94144-8_4
[51]
Alexander Nadel and Vadim Ryvchin. 2016. Bit-vector optimization. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’16). 851–867. https://doi.org/10.1007/978-3-662-49674-9_53
[52]
Roberto Sebastiani and Silvia Tomasi. 2012. Optimization in SMT with LA(Q) cost functions. In Proceedings of the International Joint Conference on Automated Reasoning (IJCAR’12). 484–498. https://doi.org/10.1007/978-3-642-31365-3_38
[53]
Jinghao Sun, Nan Guan, Feng Li, Huimin Gao, Chang Shi, and Wang Yi. 2020. Real-time scheduling and analysis of OpenMP DAG tasks supporting nested parallelism. IEEE Trans. Comput. 69, 9 (2020), 1335–1348. https://doi.org/10.1109/TC.2020.2972385
[54]
Alexandros Tzannes, George C. Caragea, Uzi Vishkin, and Rajeev Barua. 2014. Lazy scheduling: A runtime adaptive scheduler for declarative parallelism. ACM Trans. Program. Lang. Syst. 36, 3 (Aug. 2014), 10:1–10:51. https://doi.org/10.1145/2629643
[55]
Uzi Vishkin. 2011. Using simple abstraction to reinvent computing for parallelism. Commun. ACM 54, 1 (Jan. 2011), 75–85. https://doi.org/10.1145/1866739.1866757
[56]
Uzi Vishkin, George C. Caragea, and Bryant Lee. 2008. Models for advancing PRAM and other algorithms into parallel programs for a PRAM-on-Chip platform. In Handbook on Parallel Computing: Models, Algorithms, and Applications, S. Rajasekaran and J. Reif (Eds.). Chapman and Hall/CRC Press, Chapter 5.
[57]
Uzi Vishkin, Shlomit Dascal, Efraim Berkovich, and Joseph Nuzman. 1998. Explicit multi-threading (XMT) bridging models for instruction parallelism (extended abstract). In Proceedings of the ACM Symposium on Parallel Algorithms and Architectures (SPAA’98). 140–151. https://doi.org/10.1145/277651.277680
[58]
David W. Wall. 1993. Limits of Instruction-Level Parallelism. Technical Report. DEC Western Research Laboratory. Retrieved from https://www.hpl.hp.com/techreports/Compaq-DEC/WRL-93-6.pdf.
[59]
Tjark Weber. 2006. Integrating a SAT solver with an LCF-style theorem prover. Electr. Not. Theor. Comput. Sci. 144, 2 (2006), 67–78. https://doi.org/10.1016/j.entcs.2005.12.007
[60]
Xingzhi Wen and Uzi Vishkin. 2008. FPGA-based prototype of a PRAM-on-chip processor. In Proceedings of the 2008 Conference on Computing Frontiers. 55. https://doi.org/10.1145/1366230.1366240
[61]
Xingzhi Wen and Uzi Yehoshua Vishkin. U.S. Patent 8,209,690 B2, 2012. System and Method for Thread Handling in Multithreaded Parallel Computing of Nested Threads. (U.S. Patent 8,209,690 B2, 2012).

Cited By

View all
  • (2023)Empirical Challenge for NC Theory (Abstract)Proceedings of the 2023 ACM Workshop on Highlights of Parallel Computing10.1145/3597635.3598020(19-20)Online publication date: 18-Jul-2023
  • (2022)Beyond worst-case analysisProceedings of the Thirteenth International Workshop on Programming Models and Applications for Multicores and Manycores10.1145/3528425.3529105(30-34)Online publication date: 2-Apr-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Parallel Computing
ACM Transactions on Parallel Computing  Volume 8, Issue 3
September 2021
111 pages
ISSN:2329-4949
EISSN:2329-4957
DOI:10.1145/3481691
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 September 2021
Accepted: 01 March 2021
Revised: 01 January 2021
Received: 01 May 2020
Published in TOPC Volume 8, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Boolean satisfiability (SAT) solver
  2. parallel algorithms
  3. nested parallelism

Qualifiers

  • Research-article
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)42
  • Downloads (Last 6 weeks)5
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Empirical Challenge for NC Theory (Abstract)Proceedings of the 2023 ACM Workshop on Highlights of Parallel Computing10.1145/3597635.3598020(19-20)Online publication date: 18-Jul-2023
  • (2022)Beyond worst-case analysisProceedings of the Thirteenth International Workshop on Programming Models and Applications for Multicores and Manycores10.1145/3528425.3529105(30-34)Online publication date: 2-Apr-2022

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media