SAT, SMT, and QBF Solving in a Multi-Core Environment - CiteSeerX

0 downloads 0 Views 571KB Size Report
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

Suggest Documents