Jun 26, 2009 - SAT, SMT, QBF with Multi-Cores. Bernd Becker. SAT. Approaches. Conflict Clause Sharing. PaMiraXT. Combining SSS & PF. (Parallel) ...
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT
SAT, SMT, and QBF Solving in a Multi-Core Environment
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
Bernd Becker and Tobias Schubert
QBF QMiraXT PaQuBE
Faculty of Engineering University of Freiburg
AIGsolve PF for QBF
Conclusion References
6th International Workshop on Constraints in Formal Verification 2009/06/26
SAT, SMT, QBF with Multi-Cores
Motivation I
During the last 10–15 years I
I
Massive increase in the efficiency of sequential SAT-solvers Due to novel heuristics and optimizations, like e.g. I I I
I I I
Non-chronological backtracking [Silva/Sakallah1999] Conflict-driven learning [Zhang++2001] Decision heuristics [Goldberg/Novikov2002, Moskewicz++2001] Restarts [Kautz++2002] Watched literals [Zhang/Malik2003] Preprocessing techniques [Bacchus/Winter2003, Een/Biere2005]
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
I
But more recently I I
I
Performance gains for seq. SAT solving marginal Multi-core designs more and more important
New generation of parallel SAT solvers, SMT solvers, QBF solvers needed
SAT, SMT, QBF with Multi-Cores
Motivation I
During the last 10–15 years I
I
Massive increase in the efficiency of sequential SAT-solvers Due to novel heuristics and optimizations, like e.g. I I I
I I I
Non-chronological backtracking [Silva/Sakallah1999] Conflict-driven learning [Zhang++2001] Decision heuristics [Goldberg/Novikov2002, Moskewicz++2001] Restarts [Kautz++2002] Watched literals [Zhang/Malik2003] Preprocessing techniques [Bacchus/Winter2003, Een/Biere2005]
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
I
But more recently I I
I
Performance gains for seq. SAT solving marginal Multi-core designs more and more important
New generation of parallel SAT solvers, SMT solvers, QBF solvers needed
Outline
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
SAT
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
SMT
Picoso
QBF QMiraXT
QBF
PaQuBE AIGsolve PF for QBF
Conclusion
Conclusion
References
Parallel SAT Solving Approaches
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Search Space Splitting (SSS) I I I
I
I
Search space divided into disjoint parts Individual subproblems solved in parallel Typically combined with a dynamic work stealing mechanism based on the Guiding Path concept ySAT [Feldman++2005], PSATO [Zhang++1996]
Algorithm Portfolio (PF) I
Instance solved in parallel by different SAT solvers, e.g. based on different parameter settings I
I
I
Decision heuristic, Restart, Learning
Parallel SAT Check. Kernel [Blochinger++2003], ManySAT [Hamadi++2009]
Others I
I
Parallelizing only (important) parts of a SAT solver (e.g. BCP, preprocessor) Combining different strategies (e.g. SSS & PF)
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Parallel SAT Solving Approaches
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Search Space Splitting (SSS) I I I
I
I
Search space divided into disjoint parts Individual subproblems solved in parallel Typically combined with a dynamic work stealing mechanism based on the Guiding Path concept ySAT [Feldman++2005], PSATO [Zhang++1996]
Algorithm Portfolio (PF) I
Instance solved in parallel by different SAT solvers, e.g. based on different parameter settings I
I
I
Decision heuristic, Restart, Learning
Parallel SAT Check. Kernel [Blochinger++2003], ManySAT [Hamadi++2009]
Others I
I
Parallelizing only (important) parts of a SAT solver (e.g. BCP, preprocessor) Combining different strategies (e.g. SSS & PF)
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Parallel SAT Solving Approaches
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Search Space Splitting (SSS) I I I
I
I
Search space divided into disjoint parts Individual subproblems solved in parallel Typically combined with a dynamic work stealing mechanism based on the Guiding Path concept ySAT [Feldman++2005], PSATO [Zhang++1996]
Algorithm Portfolio (PF) I
Instance solved in parallel by different SAT solvers, e.g. based on different parameter settings I
I
I
Decision heuristic, Restart, Learning
Parallel SAT Check. Kernel [Blochinger++2003], ManySAT [Hamadi++2009]
Others I
I
Parallelizing only (important) parts of a SAT solver (e.g. BCP, preprocessor) Combining different strategies (e.g. SSS & PF)
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Conflict Clause Sharing
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches
I
I
I
Regardless of the overall design, communication plays a major role in parallel SAT solving Exchange of conflict clauses between processes/threads! Tradeoff I I
Probably faster SAT solving due to shared clauses Communication overhead to broadcast such data
Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion
I
Strategies I I I
Message passing Conflict clause buffer Shared clause database
References
Conflict Clause Sharing
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches
I
I
I
Regardless of the overall design, communication plays a major role in parallel SAT solving Exchange of conflict clauses between processes/threads! Tradeoff I I
Probably faster SAT solving due to shared clauses Communication overhead to broadcast such data
Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion
I
Strategies I I I
Message passing Conflict clause buffer Shared clause database
References
Conflict Clause Sharing
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Message passing I I
Each process chooses the clauses it wants to share Due to communication overhead I I
Typically, only short clauses are shared Clauses are often transferred in bundles
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
I
High scalability, high latency
QBF QMiraXT PaQuBE
I
Conflict clause buffer I I
I
I I
Requires a shared memory hardware architecture Each thread sends the clauses it wants to share to a conflict clause buffer Periodically, the threads check the buffer for new clauses added by other SAT solving threads As before, usually only short clauses are shared Medium scalability, medium latency
AIGsolve PF for QBF
Conclusion References
Conflict Clause Sharing
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Message passing I I
Each process chooses the clauses it wants to share Due to communication overhead I I
Typically, only short clauses are shared Clauses are often transferred in bundles
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
I
High scalability, high latency
QBF QMiraXT PaQuBE
I
Conflict clause buffer I I
I
I I
Requires a shared memory hardware architecture Each thread sends the clauses it wants to share to a conflict clause buffer Periodically, the threads check the buffer for new clauses added by other SAT solving threads As before, usually only short clauses are shared Medium scalability, medium latency
AIGsolve PF for QBF
Conclusion References
Conflict Clause Sharing
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
I
Shared clause database I I I
I
I
Currently, only supported by MiraXT [Lewis++2007] Requires a shared memory hardware architecture All clauses (in particular all conflict clauses) are stored in a single database Each thread has access to all conflict clauses and is able to select even very long clauses depending on its current status Medium scalability, low latency
(Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
PaMiraXT
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches
I
Nowadays clusters usually consist of a number of multi-CPU and/or multi-core workstations
Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT
I
PaMiraXT supports workstation clusters by incorporating two layers of parallelism I
I
I I I
On each node of the cluster an extended version of MiraXT is executed Each copy of MiraXT acts as a client of a master/client model Entire implementation follows the SSS approach Combines message passing and threads No. of threads running on a particular node can vary from client to client
iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
PaMiraXT
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
I
Two kinds of conflict clause sharing I
I
Between threads of one client the shared clause database is used Between different clients the master process is used
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
I
Two kinds of dynamic work stealing I
I
Between the threads of one client the master control object is used Between two clients the master process is used again
AIGsolve PF for QBF
Conclusion References
PaMiraXT
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
I
Two kinds of conflict clause sharing I
I
Between threads of one client the shared clause database is used Between different clients the master process is used
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
I
Two kinds of dynamic work stealing I
I
Between the threads of one client the master control object is used Between two clients the master process is used again
AIGsolve PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
PaMiraXT Client
Bernd Becker SAT Approaches
SAT Solving Unit
Conflict Clause Sharing PaMiraXT
Preprocessed CNF Formula
Combining SSS & PF (Parallel) Preprocessing
BCP, Conflict Clause Sharing
SAT Solver Thread 0
Master
SMT SAT Solver Thread 2
SAT Solver Thread 1
Object
Preprocessing
SAT Solver Thread 3
Picoso
Not part of the original MiraXT solver
QMiraXT
AIGsolve
Partial Model (in case of SAT)
Complete Model (in case of SAT)
QBF PaQuBE
MPI Thread Conflict Clause Buffer
Model Extension
iSAT
Control Guiding Path
Preprocessing Unit
Initial CNF Formula
Shared Clause Database
PF for QBF
Conclusion References
Control Signals, Guiding Path, Conflict Clauses
Master Process
SAT, SMT, QBF with Multi-Cores
PaMiraXT
Bernd Becker SAT Approaches Conflict Clause Sharing Client 0
Client 2
SAT Solving Unit
SAT Solving Unit
SAT Solver Thread 2
Control Object
SAT Solver Thread 1
SAT Solver Thread 3
MPI Thread
Preprocessing
Conflict Clause Buffer
Model Extension
Partial Model (in case of SAT)
Preprocessed CNF Formula
Initial CNF Formula
Master
Preprocessing Unit
Preprocessed CNF Formula
Initial CNF Formula Preprocessing Unit
SAT Solver Thread 0
PaMiraXT Combining SSS & PF
Shared Clause Database
Shared Clause Database
(Parallel) Preprocessing SAT Solver Thread 0
Master
SAT Solver Thread 2
Control Object
SAT Solver Thread 1
SAT Solver Thread 3
MPI Thread
Preprocessing
SMT iSAT Picoso
Conflict Clause Buffer
Model Extension
Partial Model (in case of SAT)
QBF
Control Signals, Guiding Path, Conflict Clauses
Control Signals, Guiding Path, Conflict Clauses
QMiraXT PaQuBE
Conflict Clause Buffer
Complete Model (in case of SAT)
Complete Model (in case of SAT)
AIGsolve
Master Client 1
SAT Solving Unit
PF for QBF Client 3
SAT Solving Unit
SAT Solver Thread 2
Control SAT Solver Thread 1
Object
SAT Solver Thread 3
MPI Thread
Preprocessing
Conflict Clause Buffer
Model Extension
Partial Model (in case of SAT)
SAT Solver Thread 0
Master
SAT Solver Thread 2
Control SAT Solver Thread 1
Object
SAT Solver Thread 3
MPI Thread
Preprocessing
Conflict Clause Buffer
Model Extension
Control Signals, Guiding Path, Conflict Clauses
Partial Model (in case of SAT)
Control Signals, Guiding Path, Conflict Clauses Complete Model (in case of SAT)
Complete Model (in case of SAT)
Preprocessed CNF Formula
Master
Initial CNF Formula
Preprocessed CNF Formula
SAT Solver Thread 0
Conclusion
Shared Clause Database
Preprocessing Unit
Preprocessing Unit
Initial CNF Formula
Shared Clause Database
References
Experimental Setup
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Hardware environment I I I I
I
1× dual-cpu, dual-core workstation (AMD Opt. 280) 2× dual-cpu workstations (AMD Opt. 250) 8 cores on total 3 clients, 1 master, 8 SAT threads, 3 MPI threads
Benchmarks I
All 247 industrial CNF formulae from the SAT Competition 2007
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
I
SAT solvers I I I I
I
MiniSat2 RSat 2.01 PicoSAT 535 MiraXT & PaMiraXT
Time limit I
10000s per benchmark
Conclusion References
Experimental Setup
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Hardware environment I I I I
I
1× dual-cpu, dual-core workstation (AMD Opt. 280) 2× dual-cpu workstations (AMD Opt. 250) 8 cores on total 3 clients, 1 master, 8 SAT threads, 3 MPI threads
Benchmarks I
All 247 industrial CNF formulae from the SAT Competition 2007
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
I
SAT solvers I I I I
I
MiniSat2 RSat 2.01 PicoSAT 535 MiraXT & PaMiraXT
Time limit I
10000s per benchmark
Conclusion References
Experimental Setup
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Hardware environment I I I I
I
1× dual-cpu, dual-core workstation (AMD Opt. 280) 2× dual-cpu workstations (AMD Opt. 250) 8 cores on total 3 clients, 1 master, 8 SAT threads, 3 MPI threads
Benchmarks I
All 247 industrial CNF formulae from the SAT Competition 2007
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
I
SAT solvers I I I I
I
MiniSat2 RSat 2.01 PicoSAT 535 MiraXT & PaMiraXT
Time limit I
10000s per benchmark
Conclusion References
SAT, SMT, QBF with Multi-Cores
Experimental Results
Bernd Becker
10000
SAT
RSat MiniSat2 PicoSAT MiraXT, 1T MiraXT, 2T MiraXT, 4T PaMiraXT, 3C/8T
8000
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
Runtime [s]
SMT iSAT
6000
Picoso
QBF QMiraXT
4000
PaQuBE AIGsolve PF for QBF
Conclusion
2000 References
0 0
50
100 150 #Solved Instances
200
I Speedup of PaMiraXT compared to MiraXT (one thread): 5.62 I For more details & results see [Schubert++2009]
SAT, SMT, QBF with Multi-Cores
Combining SSS & PF
Bernd Becker
I
Motivation for classical portfolio approach I
I I
SAT
Different sequential SAT solvers perform well on different benchmark classes
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
Argument also valid for parallel SAT solvers!! Example I I I I
(Parallel) Preprocessing
SMT iSAT
Coupling ManySAT (PF) and MiraXT (SSS) “Simulated” results taken from the SAT Race 2008 100 benchmarks, time limit of 900s per benchmark Both solvers are running four threads in parallel
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion
ManySAT #Solved Inst. Runtime [s] I
MiraXT
ManySAT & MiraXT
90
73
94
24 241.50
36 586.50
19 586.50
Future Work I
Developing such a hierarchical & parallel portfolio approach
References
SAT, SMT, QBF with Multi-Cores
Combining SSS & PF
Bernd Becker
I
Motivation for classical portfolio approach I
I I
SAT
Different sequential SAT solvers perform well on different benchmark classes
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
Argument also valid for parallel SAT solvers!! Example I I I I
(Parallel) Preprocessing
SMT iSAT
Coupling ManySAT (PF) and MiraXT (SSS) “Simulated” results taken from the SAT Race 2008 100 benchmarks, time limit of 900s per benchmark Both solvers are running four threads in parallel
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion
ManySAT #Solved Inst. Runtime [s] I
MiraXT
ManySAT & MiraXT
90
73
94
24 241.50
36 586.50
19 586.50
Future Work I
Developing such a hierarchical & parallel portfolio approach
References
SAT, SMT, QBF with Multi-Cores
Combining SSS & PF
Bernd Becker
I
Motivation for classical portfolio approach I
I I
SAT
Different sequential SAT solvers perform well on different benchmark classes
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
Argument also valid for parallel SAT solvers!! Example I I I I
(Parallel) Preprocessing
SMT iSAT
Coupling ManySAT (PF) and MiraXT (SSS) “Simulated” results taken from the SAT Race 2008 100 benchmarks, time limit of 900s per benchmark Both solvers are running four threads in parallel
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion
ManySAT #Solved Inst. Runtime [s] I
MiraXT
ManySAT & MiraXT
90
73
94
24 241.50
36 586.50
19 586.50
Future Work I
Developing such a hierarchical & parallel portfolio approach
References
SAT, SMT, QBF with Multi-Cores
Combining SSS & PF
Bernd Becker
I
Motivation for classical portfolio approach I
I I
SAT
Different sequential SAT solvers perform well on different benchmark classes
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
Argument also valid for parallel SAT solvers!! Example I I I I
(Parallel) Preprocessing
SMT iSAT
Coupling ManySAT (PF) and MiraXT (SSS) “Simulated” results taken from the SAT Race 2008 100 benchmarks, time limit of 900s per benchmark Both solvers are running four threads in parallel
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion
ManySAT #Solved Inst. Runtime [s] I
MiraXT
ManySAT & MiraXT
90
73
94
24 241.50
36 586.50
19 586.50
Future Work I
Developing such a hierarchical & parallel portfolio approach
References
Preprocessing
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
I
I
SAT solving time often correlates to the size of the CNF formula Minimizing a CNF formula before solving it might reduce the overall runtime significantly
(Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
I
Preprocessing is standard in all state-of-the-art SAT solvers (usually done with SatELite!)
AIGsolve PF for QBF
Conclusion References
I
No parallelism until now!
Preprocessing
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
I
I
SAT solving time often correlates to the size of the CNF formula Minimizing a CNF formula before solving it might reduce the overall runtime significantly
(Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
I
Preprocessing is standard in all state-of-the-art SAT solvers (usually done with SatELite!)
AIGsolve PF for QBF
Conclusion References
I
No parallelism until now!
(Parallel) preprocessing with preMiraXT
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches
Original CNF
Conflict Clause Sharing PaMiraXT Combining SSS & PF
Loading CNF
(Parallel) Preprocessing
SMT
I preMiraXT incorporates several preprocessing techniques
VE & SS
#Vars ≤ 0.35 · #Vars_orig OR #Threads = 1?
x ≡ y
Writing CNF
Preprocessed CNF
#Vars > 0.35 · #Vars_orig AND #Threads = 4?
I
Initializing UPLA0..3
I UPLA0
UPLA1
UPLA2
UPLA3
I I
Collecting Assumptions
VE & SS
x ≡ y
I I
Variable elimination Subsumption Self-subsuming resolution Pure literals Equivalent variables Unit propagation lookahead
iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Experimental Setup
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Hardware environment I I I I
I
Intel Core 2 Quad Q9450 processor 12 MB L2 cache, 4 GB RAM 2.66 GHz clock frequency Kubuntu Linux (kernel 2.6.24)
Benchmarks I
I
337 CNF formulae (SAT Race 2006 & 2008, industrial benchmarks SAT Competition 2007) Each benchmark contains less than 4 million clauses
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
I
Preprocessors I I I
I
SAT solver I
I
SatELite MiniSat2 preMiraXT (1 Thread & 4 Threads) RSat 3.01
Time limit I
1000s per benchmark (preprocessing & SAT solving)
Conclusion References
Experimental Setup
SAT, SMT, QBF with Multi-Cores Bernd Becker
I
Hardware environment I I I I
I
Intel Core 2 Quad Q9450 processor 12 MB L2 cache, 4 GB RAM 2.66 GHz clock frequency Kubuntu Linux (kernel 2.6.24)
Benchmarks I
I
337 CNF formulae (SAT Race 2006 & 2008, industrial benchmarks SAT Competition 2007) Each benchmark contains less than 4 million clauses
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
I
Preprocessors I I I
I
SAT solver I
I
SatELite MiniSat2 preMiraXT (1 Thread & 4 Threads) RSat 3.01
Time limit I
1000s per benchmark (preprocessing & SAT solving)
Conclusion References
SAT, SMT, QBF with Multi-Cores
First Results – Preprocessing
Bernd Becker SAT Approaches
Original
MiniSat2
SatELite
#Variables
44 000 267
15 999 208
12 177 952
#Clauses
192 890 515
113 072 975
101 495 302
#Solved Inst.
–
3
23
Runtime [s]
–
1 058.06
1 356.81
Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Original
preMiraXT 1 Thread 4 Threads
#Variables
44 000 267
11 885 337
11 342 102
#Clauses
88 219 528
192 890 515
94 255 925
#Solved Inst.
–
26
26
Runtime [s]
–
811.36
1 151.87
Conclusion References
First Results – Preprocessing & SAT Solving
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT
#Solved Instances Preproc. Time [s]
RSat
SatELite & RSat
197
221
–
1 356.81
Solving Time [s]
175 574.02
144 045.68
Total Runtime [s]
175 574.02
145 402.49
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve
preMiraXT & RSat 1 Thread 4 Threads #Solved Instances Preproc. Time [s]
226
218
811.36
1 151.87
Solving Time [s]
143 949.55
146 837.56
Total Runtime [s]
144 760.91
147 989.43
PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
First Results – Observations I
I
I
Using four threads preMiraXT achieves the best reduction quality, but taking the SAT solving process into account the single-threaded mode of preMiraXT performs better RSat seems to be non-robust wrt. to the “structure” of satisfiable CNF formulae Example: mizh-sha0-36-4.cnf, SAT Race 2008
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
Original
I
preMiraXT & RSat 1 Thread 4 Threads
#Variables
50 073
19 212
19 101
#Clauses
210 235
112 820
112 380
Preproc. Time [s]
–
0.48
0.78
Solving Time [s]
–
114.38
>1000
Future work I I
Heuristics for using UPLA Experiments with other SAT solvers
AIGsolve PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
First Results – Observations I
I
I
Using four threads preMiraXT achieves the best reduction quality, but taking the SAT solving process into account the single-threaded mode of preMiraXT performs better RSat seems to be non-robust wrt. to the “structure” of satisfiable CNF formulae Example: mizh-sha0-36-4.cnf, SAT Race 2008
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
Original
I
preMiraXT & RSat 1 Thread 4 Threads
#Variables
50 073
19 212
19 101
#Clauses
210 235
112 820
112 380
Preproc. Time [s]
–
0.48
0.78
Solving Time [s]
–
114.38
>1000
Future work I I
Heuristics for using UPLA Experiments with other SAT solvers
AIGsolve PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
First Results – Observations I
I
I
Using four threads preMiraXT achieves the best reduction quality, but taking the SAT solving process into account the single-threaded mode of preMiraXT performs better RSat seems to be non-robust wrt. to the “structure” of satisfiable CNF formulae Example: mizh-sha0-36-4.cnf, SAT Race 2008
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
Original
I
preMiraXT & RSat 1 Thread 4 Threads
#Variables
50 073
19 212
19 101
#Clauses
210 235
112 820
112 380
Preproc. Time [s]
–
0.48
0.78
Solving Time [s]
–
114.38
>1000
Future work I I
Heuristics for using UPLA Experiments with other SAT solvers
AIGsolve PF for QBF
Conclusion References
Outline
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
SAT
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
SMT
Picoso
QBF QMiraXT
QBF
PaQuBE AIGsolve PF for QBF
Conclusion
Conclusion
References
Motivation
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT
I
Real-world scenarios (automotive controllers, airtraffic managment, medical devices, robots . . . ) embed discrete control in continuous environment
PaQuBE AIGsolve PF for QBF
Conclusion References
I
Complexity and safety-critical nature pose a major challenge for verification approaches
I
Formal specification relies on hybrid systems, often modeling highly non-linear dynamics (like x 0 = sin(y ))
Satisfiability Modulo Theories (SMT)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
I
I
Extending the propositional logic by embedding some theories, e.g., equalities, uninterpreted functions, or theories over the reals Some well-known examples I I I
Barcelogic [Nieuwenhuis/Oliveras2005] Yices [Dutertre/Moura2006] Z3 [Moura/Bjørner2008]
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
I
No parallel SMT solver published
iSAT
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
I
I
Boolean combinations of non-linear arithmetic constraints, e.g. (sin(x)3 = cos(log(y ) · x)) ∨ b ∨ (−x 2 ≥ 2.3y ) y ∧ ¬b ∨ (y < −34.4) ∨ (exp(x) > ) x iSAT building on DPLL based SAT solving and interval constraint propagation [Fränzle++2007]
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
Search Space Splitting: iSAT vs. Boolean SAT
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF
x ∈ [0, 3]
x ∈ (3, 6]
x =0
x =1
(Parallel) Preprocessing
SMT iSAT Picoso
y ∈ [3, 4]
QBF
y =1
QMiraXT PaQuBE AIGsolve
x ∈ [1, 3)
PF for QBF
Conclusion
z ∈ [−1, 2]
z ∈ (2, 4]
z=0
z=1
References
SAT, SMT, QBF with Multi-Cores
Picoso
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
I
I
Parallelization based on master/client model and message passing Algorithmic core of the clients is formed by iSAT
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve
I
Two versions I
SSS and PF
PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
Picoso
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
I
I
Parallelization based on master/client model and message passing Algorithmic core of the clients is formed by iSAT
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve
I
Two versions I
SSS and PF
PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
Picoso_SSS
Bernd Becker
I
I
Dynamic work stealing based on guiding paths and volume heuristics Exchange of information in form of conflict clauses
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT
x ∈ [0, 3] Initial intervals: x ∈ [0, 6] y ∈ [2, 8] z ∈ [−1, 4]
x ∈ (3, 6]
Picoso
QBF QMiraXT PaQuBE
y ∈ [3, 4]
AIGsolve PF for QBF
Conclusion
x ∈ [1, 3) Volumes: V (GP(P1 )) = 2 · 1 · 3 = 6 V (GP(P2 )) = 2 · 1 · 2 = 4 V (GP(P3 )) = 3 · 6 · 5 = 90
iSAT
z ∈ [−1, 2]
P1
References
z ∈ (2, 4]
P2
P3
Experimental Setup: Picoso_SSS
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
I
Workstation with eight 2.3 GHz AMD processor cores
I
One master process and 2, 4, 8 clients
SMT iSAT
I
Clients are allowed to share conflict clauses with length ≤ 6
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
I
Transfer buffer for conflict clauses with size 20
I
Time limit: 30000s
Conclusion References
iSAT and Picoso_SSS with 2, 4, and 8 clients, all using the same branching heuristic
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing
iSAT Picoso2 Picoso4 Picoso8
10000
PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
time [s]
Picoso
1000
QBF QMiraXT PaQuBE AIGsolve PF for QBF
100
Conclusion References
10 5
speedup #Timeouts
10
15
20
25
benchmark
30
35
iSAT
Picoso_SSS_2
Picoso_SSS_4
Picoso_SSS_8
3
3.16 1
3.67 0
6.21 0
iSAT and Picoso_SSS with 2, 4, and 8 clients, all using the same branching heuristic
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing
iSAT Picoso2 Picoso4 Picoso8
10000
PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
time [s]
Picoso
1000
QBF QMiraXT PaQuBE AIGsolve PF for QBF
100
Conclusion References
10 5
speedup #Timeouts
10
15
20
25
benchmark
30
35
iSAT
Picoso_SSS_2
Picoso_SSS_4
Picoso_SSS_8
3
3.16 1
3.67 0
6.21 0
Picoso_PF
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
Exhibits a portfolio of iSAT copies running on different processors
SMT
I
Copies differ in the branching heuristic
QBF
I
Problem solving in parallel, currently without information exchange
I
I
Fastest solver stops all others
iSAT Picoso
QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Experimental Setup: Picoso_PF
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
I
Workstation with four 2.3 GHz AMD processor cores
I
One master process and 4 clients
SMT iSAT
I
I
Comparison between iSAT, Picoso_SSS (on 4 clients), and Picoso_PF (using four different branching heuristics) Time limit: 30000s
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Picoso_PF vs. iSAT and Picoso_SSS
SAT, SMT, QBF with Multi-Cores Bernd Becker
10000
SAT
iSAT Picoso_AP Picoso4
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
time [s]
1000
SMT iSAT Picoso
QBF
100
QMiraXT PaQuBE AIGsolve PF for QBF
10
Conclusion References
1
5
10
speedup #Timeouts
15
20
25
benchmark
30
35
iSAT
Picoso_SSS_4
Picoso_PF_4
11
5.36 7
1.65 3
40
Picoso_PF vs. iSAT and Picoso_SSS
SAT, SMT, QBF with Multi-Cores Bernd Becker
10000
SAT
iSAT Picoso_AP Picoso4
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
time [s]
1000
SMT iSAT Picoso
QBF
100
QMiraXT PaQuBE AIGsolve PF for QBF
10
Conclusion References
1
5
10
speedup #Timeouts
15
20
25
benchmark
30
35
iSAT
Picoso_SSS_4
Picoso_PF_4
11
5.36 7
1.65 3
40
Picoso – Future Work
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT
I
Partitioning strategies and decision heuristics
I
Heuristics for conflict clause sharing
I
Integration of shared memory concepts
I
Integration of SSS and PF
iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Outline
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
SAT
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
SMT
Picoso
QBF QMiraXT
QBF
PaQuBE AIGsolve PF for QBF
Conclusion
Conclusion
References
SAT, SMT, QBF with Multi-Cores
QBF
Bernd Becker SAT Approaches
I I
QBF = Quantified Boolean Formulas Example I
∃x1 ∀y ∃x2 [(x 1 ∨y ∨x2 )∧(y ∨x 2 )∧(x2 )∧(x1 ∨y )∧(y ∨x2 ) ]
Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
I
I
I
Applications in Black Box or Partial Circuit Verification, Bounded Model Checking, AI planning Sequential DPLL-based QBF algorithms include conflict and solution analysis with non-chronological backtracking and preprocessing Only one parallel QBF solver before 2009 I
I
PQSOLVE [Feldmann++2000]
SSS- and PF-approaches just starting
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
SAT, SMT, QBF with Multi-Cores
QBF
Bernd Becker SAT Approaches
I I
QBF = Quantified Boolean Formulas Example I
∃x1 ∀y ∃x2 [(x 1 ∨y ∨x2 )∧(y ∨x 2 )∧(x2 )∧(x1 ∨y )∧(y ∨x2 ) ]
Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
I
I
I
Applications in Black Box or Partial Circuit Verification, Bounded Model Checking, AI planning Sequential DPLL-based QBF algorithms include conflict and solution analysis with non-chronological backtracking and preprocessing Only one parallel QBF solver before 2009 I
I
PQSOLVE [Feldmann++2000]
SSS- and PF-approaches just starting
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
QMiraXT: A Threaded QBF Solver [Lewis++2009a] I I I I
Threaded, shared memory DPLL design similar to MiraXT (multi-core processors) Conflict/Solution analysis with non-chronological backtracking Clause recording, but without solution cube recording First published parallel QBF solver with modern features (PQSolve is 7 years old)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve
Results on QBFEVAL’07 benchmarks (600s timeout):
PF for QBF
Conclusion
AMD Dual Opteron 250 (2 cores) Solver #PS Runtime [s] sKizzo 420 437,282 Quantor 3 428 434,438 QMiraXT, 1 Thread 482 406,560 QMiraXT, 2 Threads 506 389,881 QuBE 613 325,550
References
QMiraXT: A Threaded QBF Solver [Lewis++2009a] I I I I
Threaded, shared memory DPLL design similar to MiraXT (multi-core processors) Conflict/Solution analysis with non-chronological backtracking Clause recording, but without solution cube recording First published parallel QBF solver with modern features (PQSolve is 7 years old)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve
Results on QBFEVAL’07 benchmarks (600s timeout):
PF for QBF
Conclusion
AMD Dual Opteron 250 (2 cores) Solver #PS Runtime [s] sKizzo 420 437,282 Quantor 3 428 434,438 QMiraXT, 1 Thread 482 406,560 QMiraXT, 2 Threads 506 389,881 QuBE 613 325,550
References
PaQuBE: A Parallel QBF Solver [Lewis++2009b] I I I
I
MPI, master/client based design for clusters PaQuBE includes advanced knowledge sharing QuBE used as client solver (with advanced preprocessing, conflict/solution recording, ...) QuBE solved 2x more benchmarks than Nenofex (2nd best solver 2008)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
Results on all QBFLIB benchm. where QuBE 1P > 10s: AMD Quad Opteron 8356 (16 cores) Solver #CC/s #SC/s #PS Runtime [s] QuBE 1P 0 0 227 63052.91 PaQuBE 2P 38.10 40.40 242 48387.99 PaQuBE 4P 79.45 73.78 262 33592.96 PaQuBE 8P 109.87 102.92 266 31797.71 PaQuBE 16P 157.09 137.99 274 27857.26
AIGsolve PF for QBF
Conclusion References
PaQuBE: A Parallel QBF Solver [Lewis++2009b] I I I
I
MPI, master/client based design for clusters PaQuBE includes advanced knowledge sharing QuBE used as client solver (with advanced preprocessing, conflict/solution recording, ...) QuBE solved 2x more benchmarks than Nenofex (2nd best solver 2008)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
Results on all QBFLIB benchm. where QuBE 1P > 10s: AMD Quad Opteron 8356 (16 cores) Solver #CC/s #SC/s #PS Runtime [s] QuBE 1P 0 0 227 63052.91 PaQuBE 2P 38.10 40.40 242 48387.99 PaQuBE 4P 79.45 73.78 262 33592.96 PaQuBE 8P 109.87 102.92 266 31797.71 PaQuBE 16P 157.09 137.99 274 27857.26
AIGsolve PF for QBF
Conclusion References
AIGsolve [Pigorsch/Scholl2009]
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT
I
I
Based on And-Inverter Graphs (AIGs) as data structure Extraction of functional definitions of variables from QBF instances in prenex normal form
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
I
Extraction of non-prenex quantifier structures
I
Generation of a non-prenex, non-cnf QBF formula
I
Elimination of quantifiers by AIG methods
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Results on QBFEVAL’07 Benchmarks: I
Solved 537 instances in 375274 CPU seconds1
I
Success on 48 “hard” instances2
1 2
600s penalty for unsolved instances not solved by any solver participating in the QBFEVAL’07
AIGsolve [Pigorsch/Scholl2009]
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT
I
I
Based on And-Inverter Graphs (AIGs) as data structure Extraction of functional definitions of variables from QBF instances in prenex normal form
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
I
Extraction of non-prenex quantifier structures
I
Generation of a non-prenex, non-cnf QBF formula
I
Elimination of quantifiers by AIG methods
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Results on QBFEVAL’07 Benchmarks: I
Solved 537 instances in 375274 CPU seconds1
I
Success on 48 “hard” instances2
1 2
600s penalty for unsolved instances not solved by any solver participating in the QBFEVAL’07
SAT, SMT, QBF with Multi-Cores
PF for QBF I
I
I I
Different sequential QBF solvers perform well on different benchmark classes Demonstrate the potential of a combination of search-based and a rewriting-based QBF solver QMiraXT combined with AIGsolve First results on QBFEVAL’07 Benchmarks for a combination of sequential versions (600s time limit):
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
#Solved Inst.
Runtime [s]
QuBE
614
328339
Conclusion
QMiraxT
490
400107
References
AIGsolve
608
332339
AIG(10)+MIRA(590)
616
281083
MIRA(10)+AIG(590)
694
305365
AIG(325)+MIRA(275)
713
400107
AIGsolve PF for QBF
I
Current Work I
Close integration and parallelization
SAT, SMT, QBF with Multi-Cores
PF for QBF I
I
I I
Different sequential QBF solvers perform well on different benchmark classes Demonstrate the potential of a combination of search-based and a rewriting-based QBF solver QMiraXT combined with AIGsolve First results on QBFEVAL’07 Benchmarks for a combination of sequential versions (600s time limit):
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
#Solved Inst.
Runtime [s]
QuBE
614
328339
Conclusion
QMiraxT
490
400107
References
AIGsolve
608
332339
AIG(10)+MIRA(590)
616
281083
MIRA(10)+AIG(590)
694
305365
AIG(325)+MIRA(275)
713
400107
AIGsolve PF for QBF
I
Current Work I
Close integration and parallelization
SAT, SMT, QBF with Multi-Cores
PF for QBF I
I
I I
Different sequential QBF solvers perform well on different benchmark classes Demonstrate the potential of a combination of search-based and a rewriting-based QBF solver QMiraXT combined with AIGsolve First results on QBFEVAL’07 Benchmarks for a combination of sequential versions (600s time limit):
Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE
#Solved Inst.
Runtime [s]
QuBE
614
328339
Conclusion
QMiraxT
490
400107
References
AIGsolve
608
332339
AIG(10)+MIRA(590)
616
281083
MIRA(10)+AIG(590)
694
305365
AIG(325)+MIRA(275)
713
400107
AIGsolve PF for QBF
I
Current Work I
Close integration and parallelization
Outline
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing PaMiraXT
SAT
Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
SMT
Picoso
QBF QMiraXT
QBF
PaQuBE AIGsolve PF for QBF
Conclusion
Conclusion
References
Conclusion
SAT, SMT, QBF with Multi-Cores Bernd Becker
SAT I I
Search Space Splitting vs. Algorithm Portofolio Conflict Clause Sharing I
I
Message passing, conflict clause buffer, shared clause database
PaMiraXT I I
Next: Hierarchical parallelism (thread affinity) Search Space Slpitting & Algorithm Portofolio
SMT & QBF I
I
SSS & PF work (Picoso, QMiraXT, PaQuBE, QMiraXT&AIGsolve) But a lot has to be done I I I I
Partitioning strategies Heuristics for conflict clause sharing Integration of shared memory concepts Integration of SSS and PF
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Conclusion
SAT, SMT, QBF with Multi-Cores Bernd Becker
SAT I I
Search Space Splitting vs. Algorithm Portofolio Conflict Clause Sharing I
I
Message passing, conflict clause buffer, shared clause database
PaMiraXT I I
Next: Hierarchical parallelism (thread affinity) Search Space Slpitting & Algorithm Portofolio
SMT & QBF I
I
SSS & PF work (Picoso, QMiraXT, PaQuBE, QMiraXT&AIGsolve) But a lot has to be done I I I I
Partitioning strategies Heuristics for conflict clause sharing Integration of shared memory concepts Integration of SSS and PF
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Conclusion
SAT, SMT, QBF with Multi-Cores Bernd Becker
SAT I I
Search Space Splitting vs. Algorithm Portofolio Conflict Clause Sharing I
I
Message passing, conflict clause buffer, shared clause database
PaMiraXT I I
Next: Hierarchical parallelism (thread affinity) Search Space Slpitting & Algorithm Portofolio
SMT & QBF I
I
SSS & PF work (Picoso, QMiraXT, PaQuBE, QMiraXT&AIGsolve) But a lot has to be done I I I I
Partitioning strategies Heuristics for conflict clause sharing Integration of shared memory concepts Integration of SSS and PF
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
Conclusion
SAT, SMT, QBF with Multi-Cores Bernd Becker
SAT I I
Search Space Splitting vs. Algorithm Portofolio Conflict Clause Sharing I
I
Message passing, conflict clause buffer, shared clause database
PaMiraXT I I
Next: Hierarchical parallelism (thread affinity) Search Space Slpitting & Algorithm Portofolio
SMT & QBF I
I
SSS & PF work (Picoso, QMiraXT, PaQuBE, QMiraXT&AIGsolve) But a lot has to be done I I I I
Partitioning strategies Heuristics for conflict clause sharing Integration of shared memory concepts Integration of SSS and PF
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
Conclusion References
References
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT
M. Fränzle, C. Herde, T. Teige, S. Ratschan, and T. Schubert. Efficient Solving of Large Non-linear Arithmetic Constraint Systems with Complex Boolean Structure. JSAT, Volume 1 (2007).
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
N. Kalinnik, T. Schubert, E. Ábrahám, R. Wimmer, and B. Becker. Picoso – A Parallel Interval Constraint Solver. PDPTA, 2009.
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
M. Lewis, T. Schubert, and B. Becker. Multithreaded SAT Solving. ASP-DAC, 2007. M. Lewis, T. Schubert, and B. Becker. QMiraXT – A Multithreaded QBF Solver. GI/ITG/GMM Workshop, 2009.
Conclusion References
References (cont’d)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches Conflict Clause Sharing
M. Lewis, P. Marin, T. Schubert, M. Narizzano, B. Becker, and E. Giunchiglia. PaQuBE: Distributed QBF Solving with Advanced Knowledge Sharing. SAT, 2009.
PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT
F. Pigorsch and C. Scholl. Exploiting Structure in an AIG Based QBF Solver. DATE, 2009.
PaQuBE AIGsolve PF for QBF
Conclusion References
T. Schubert, M. Lewis, and B. Becker. PaMiraXT: Parallel SAT Solving with Threads & Mess. Passing. JSAT, Volume 6 (2009).
References (cont’d)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT
F. Bacchus and J. Winter. Effective Preprocessing with Hyper-Resolution and Equality Reduction. SAT, 2003.
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
W. Blochinger, C. Sinz, and W. Küchlin. A Universal Parallel SAT Checking Kernel. PDPTA, 2003.
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
B. Dutertre and L. de Moura. A Fast Linear-Arithmetic Solver for DPLL(T). CAV, 2006. N. Eén and A. Biere. Effective Preproc. in SAT through Variable & Clause Elimination. SAT, 2005.
Conclusion References
References (cont’d)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT
Y. Feldman, N. Dershowitz, and Z. Hanna. Parallel Multithreaded Satisfiability Solver: Design and Implementation. Electronic Notes in Theor. Comp. Science, Volume 128 (2005).
Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT
R. Feldmann, B. Monien, and S. Schamberger. A Distributed Algorithm to evaluate QBF. AAAI, 2000.
Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
E. Goldberg and Y. Novikov. BerkMin: A Fast and Robust SAT-Solver. DATE, 2002. Y. Hamadi, S. Jabbour, and L. Sais. ManySAT: a Parallel SAT Solver. JSAT, Volume 6 (2009).
Conclusion References
References (cont’d)
SAT, SMT, QBF with Multi-Cores Bernd Becker SAT Approaches
H.A. Kautz, E. Horvitz, Y. Ruan, C. Gomes, and B. Selman. Dynamic Restart Policies. AAAI, 2002. J.P. Marques-Silva and K.A. Sakallah. GRASP: A Search Algorithm for Propositional Satisfiability. IEEE Transactions on Computers, Volume 48 (1999).
Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve
M.W. Moskewicz, C.F. Madigan, Y. Zhao, L. Zhang, and S. Malik. Chaff: Engineering an Efficient SAT Solver. DAC, 2001. L. de Moura and N. Bjørner. Z3: An Efficient SMT Solver. TACAS, 2008.
PF for QBF
Conclusion References
References (cont’d)
SAT, SMT, QBF with Multi-Cores Bernd Becker
R. Nieuwenhuis and A. Oliveras. Decision procedures for SAT, SAT Modulo Theories and Beyond. The BarcelogicTools. LPAR, 2005.
SAT Approaches Conflict Clause Sharing PaMiraXT Combining SSS & PF (Parallel) Preprocessing
SMT
H. Zhang, M. Bonacina, and J. Hsiang. PSATO: a Distributed Propositional Prover and its Application to Quasigroup Problems. Journal of Symbolic Computation, Volume 21 (1996).
iSAT Picoso
QBF QMiraXT PaQuBE AIGsolve PF for QBF
L. Zhang, C.F. Madigan, M.W. Moskewicz, and S. Malik. Efficient Conflict Driven Learning in a Boolean SAT Solver. ICCAD, 2001. L. Zhang and S. Malik. Cache Performance of SAT Solvers: a Case Study for Efficient Implementation of Algorithms. SAT, 2003.
Conclusion References