Parallel SAT Solving: Past, Present and Future PCR 2017, Gothenburg, Sweden Carsten Sinz Institute for Theoretical Informatics (ITI) Karlsruhe Institute of Technology (KIT) 06.08.2017 1
Outline • Guided by Historical Development • Search Space Splitting Approach • Portfolio Approach • Empirical Observations • Parallel Solvers in the SAT Competition • Current and Future Approaches Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 2
SAT: Combinatorial Search Search Space Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 3
Sequential DPLL Algorithm Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 4
DPLL: Search Tree & Splitting • Splitting similar to DPLL recursion step F • F| x,¬y , e.g., describes a fraction of the search space x ¬x • Splitting Schedule • When and how to split ¬y y F| ¬x • Static vs Dynamic Splitting • Static: computed before solving F| x,¬y F| x,y process starts; typically with „over- saturation“ • Dynamic: splitting interleaved with solving Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 5
Splitting Tree with Non-Overlapping Formulas Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 6
Guiding Paths [Zhang:96] • Guiding Path • Describes state in DPLL search • Trail plus, for each entry, whether backtracking is needed (B) or not (N) • Can be used for dynamic search space splitting, e.g.: • ((x,B),(y,N),(¬z,B)) splits into ((x,N),(y,N),(¬z,B)) and ((¬x,N)) ((x, B ),(y, N ),(¬z, B )) Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 7
Dynamic Splitting: Focus on Workload Management Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 8
Search Space Splitting Solvers • Early days of parallel SAT solving • Böhm, Speckenmeyer (1996): A Fast Parallel SAT-Solver - E ffi cient Workload Balancing • Speckenmeyer (1988): Is average superlinear speedup possible? • Zhang, Bonacina, Hsiang (1996): PSATO: a distributed propositional prover and its application to quasigroup problems • With clause learning and clause exchange • Sinz, Blochinger, Küchlin (2001): PaSAT - parallel SAT-checking with lemma exchange: Implementation and applications • Schubert, Lewis, Becker (2005): PaMira - A Parallel SAT Solver with Knowledge Sharing Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 9
PaSAT: Run-Time Observations SAT UNSAT Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 10
Portfolio Approach • Basic Idea • Run several solvers (without search space splitting, independently) in parallel • SAT Competition 2011 • ppfolio// wins 11 medals, best solver in competition • „ppfolio is essentially equivalent to typing solver1 & solver2 & ... solvern & “ • Extensions • Current solvers also exchange learned clauses and have evolved diversification strategies Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 11
Portfolio Solvers • Early portfolio solvers • Hamadi, Jabbour, Sais (2008): ManySAT Solver Description • Xu, Hutter, Hoos, Leyton-Brown: SATzilla: Portfolio-based Algorithm Selection for SAT • Roussel (2011): Description of ppfolio • Current portfolio solvers • Biere (2010-): plingeling, clingeling, treengeling • Balyo, Sanders, Sinz (2015): HordeSat: A Massively Parallel Portfolio SAT Solver Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 12
Diversification & Clause Exchange • Random 3-SAT, only satisfiable instances Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 13
Diversification & Clause Exchange • Random 3-SAT, only unsatisfiable instances Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 14
HordeSAT: Massive Parallelization [545 instances from SAT Competitions 2011 & 2014 Application Track] Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 15
HordeSAT: Massive Parallelization Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 16
Why Parallelization? Power Wall Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 17
Parallel SAT in the SAT Competitions • 2009: First Parallel Track • „Multi-threading is everywehere except in our solvers“ • „Solvers are expected to be deterministic“ • 4 solvers submitted (plus variants): ManySAT, satake, ttsth and gNovelty • 4 cores (partially 16 cores) • 2010: SAT-Race, only industrial instances • 5 solvers participating, 8 cores • „Solvers are expected to be non-deterministic“: 3 runs per solver and instance, high deviation in run-time • 2011: No separation between sequential and parallel solvers • Two rankings: wall clock and CPU time • 2017 SAT Competition • 48 threads, 56 GB per solver Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 18
Current Trends and Future Directions • Current Trends • Refined approaches for portfolio solvers (diversification & clause sharing) • Cube-and-Conquer (especially for hard instances) • Future Directions • Integrating sub-solvers in portfolio • Based on SAT sweeping / sampling, e.g. equivalence detection • Based on abstraction? • Still mostly open: make use of GPUs Carsten Sinz • Parallel SAT Solving: Past, Present and Future • PCR 2017, Gothenburg, Sweden • 06.08.2017 19
Recommend
More recommend