Parallel SAT Solving-Using More Cores

A parallelization approach for SAT solving is presented. Common parallel portfolio approaches seem to stagnate at four parallel solvers and cannot compete with the growing number of cores in the next generation of CPUs. The presented algorithm provides an opportunity to use additional cores by parallelizing the unit propagation. In average, unit propagation consumes 80% of the solvers runtime and thus provides a high potential to be parallelized. This load can be distributed among cores by splitting the clause database into partitions. The presented algorithm uses only a single lock for synchronizing conflicts. The parallelization is implemented into riss. A speedup of 1.57 can be reached by using two threads on the SAT Race 2010 benchmark in the best case, however, the performance of the parallelization is higher, because the sequential algorithm can solve only 48 instances within the timeout, whereas two threads can solve at least 61 out of 100 instances. Experiments on the SAT Competition 2009 Application benchmark showed that using four threads does not increase the solvers power. Still, by applying the presented technique to an existing solver, the number of used cores can be doubled.

[1]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[2]  G. Amdhal,et al.  Validity of the single processor approach to achieving large scale computing capabilities , 1967, AFIPS '67 (Spring).

[3]  Bart Selman,et al.  Planning as Satisfiability , 1992, ECAI.

[4]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

[5]  Ramón Béjar,et al.  Solving the Round Robin Problem Using Propositional Logic , 2000, AAAI/IAAI.

[6]  M. Moskewicz,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[7]  Sharad Malik,et al.  Efficient conflict driven learning in a Boolean satisfiability solver , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[8]  Lawrence Ryan Efficient algorithms for clause-learning SAT solvers , 2004 .

[9]  Daniel Singer,et al.  JaCk-SAT: A New Parallel Scheme to Solve the Satisfiability Problem (SAT) Based on Join-and-Check , 2007, PPAM.

[10]  Peter J. Stuckey,et al.  PMiniSat - A parallelization of MiniSat 2.0 , 2008 .

[11]  Gilles Dequen,et al.  Automatic parallel SAT solving using MTSS , 2009, 2009 International Conference on High Performance Computing & Simulation.

[12]  Kazunori Ueda,et al.  c-sat: A Parallel SAT Solver for Clusters , 2009, SAT.

[13]  Peter J. Stuckey,et al.  Cache Conscious Data Structures for Boolean Satisfiability Solvers , 2009, J. Satisf. Boolean Model. Comput..

[14]  Cesare Tinelli,et al.  Handbook of Satisfiability , 2021, Handbook of Satisfiability.

[15]  Armin Biere,et al.  Minimizing Learned Clauses , 2009, SAT.

[16]  Lakhdar Sais,et al.  ManySAT: a Parallel SAT Solver , 2009, J. Satisf. Boolean Model. Comput..

[17]  Armin Biere,et al.  Automated Testing and Debugging of SAT and QBF Solvers , 2010, SAT.

[18]  Ilkka Niemelä,et al.  Partitioning SAT Instances for Distributed Solving , 2010, LPAR.

[19]  Steffen Hölldobler,et al.  Improving Resource-Unaware SAT Solvers , 2010, LPAR.

[20]  Mate Soos,et al.  Enhanced Gaussian Elimination in DPLL-based SAT Solvers , 2010, POS@SAT.

[21]  Norbert Manthey Solver submission of riss 1 . 0 to the SAT Competition 2011 , 2011 .