Mira XT
Mira XT
1 / 35
Outline
1 2 3
Parallel SAT Solving Related Work MiraXT Shared Clause Database Watched Literal Reference List Conict Clause Sharing Master Control Object Other Features Experimental Results Summary & Future Work
4 5
2 / 35
3 / 35
3 / 35
Related Work
4 / 35
Related Work
Approaches for workstations connected by ethernet
PSATO, //Satz, GridSAT, PaMira Highly scalable
100s of workstations can be used in parallel
Loose integration of the SAT solving units Based on a master/client model Each client maintains its own clause database Communication is done with message passing
Relatively slow form of communication Signicant overhead for every message
5 / 35
Related Work
Approaches for workstations connected by ethernet
PSATO, //Satz, GridSAT, PaMira Highly scalable
100s of workstations can be used in parallel
Loose integration of the SAT solving units Based on a master/client model Each client maintains its own clause database Communication is done with message passing
Relatively slow form of communication Signicant overhead for every message
5 / 35
Related Work
Clause Database SAT Solver Client 0 Master Process Clause Database SAT Solver Client 1 PaMira: 1 Master, 4 Clients
6 / 35
Related Work
Message Passing
Master Process Clause Database SAT Solver Client 1 PaMira: 1 Master, 4 Clients Clause Database SAT Solver Client 3
6 / 35
Related Work
7 / 35
Related Work
ySAT (Feldman, Dershowitz, Hanna, PDMC 2004)
Shared clause database
Contains all clauses of the original CNF formula (read-only)
8 / 35
Related Work
ySAT (Feldman, Dershowitz, Hanna, PDMC 2004)
Shared clause database
Contains all clauses of the original CNF formula (read-only)
8 / 35
Related Work
ySAT (Feldman, Dershowitz, Hanna, PDMC 2004)
Shared clause database
Contains all clauses of the original CNF formula (read-only)
8 / 35
Related Work
Clauses of the original CNF formula (readonly)
Available Subproblems
Clause Store
MiraXT
Design Goals
Focus on multi-CPU and multi-core workstations Thread-based implementation One clause database containing all inital and conict clauses Efcient exchange of conict clauses Generation of subproblems on demand Master control object
Signalling SAT/UNSAT Requesting subproblems
10 / 35
MiraXT
11 / 35
Outline
1 2 3
Parallel SAT Solving Related Work MiraXT Shared Clause Database Watched Literal Reference List Conict Clause Sharing Master Control Object Other Features Experimental Results Summary & Future Work
4 5
12 / 35
13 / 35
13 / 35
13 / 35
13 / 35
14 / 35
14 / 35
14 / 35
"New" Clauses
14 / 35
"New" Clauses
14 / 35
Outline
1 2 3
Parallel SAT Solving Related Work MiraXT Shared Clause Database Watched Literal Reference List Conict Clause Sharing Master Control Object Other Features Experimental Results Summary & Future Work
4 5
15 / 35
CV is the rst choice when searching for a new WL CV is the old WL if the WL is replaced
16 / 35
CV is the rst choice when searching for a new WL CV is the old WL if the WL is replaced
16 / 35
17 / 35
Outline
1 2 3
Parallel SAT Solving Related Work MiraXT Shared Clause Database Watched Literal Reference List Conict Clause Sharing Master Control Object Other Features Experimental Results Summary & Future Work
4 5
18 / 35
Performs conict analysis Adds the deduced conict clause to the clause database Determines the backtrack level Continues the search process
Performs conict analysis Adds the deduced conict clause to the clause database Checks for new clauses within the shared clause database Integrates all short and conicting clauses into its own context
Multiple calls of the conict analysis routine & backtrack operations
19 / 35
Performs conict analysis Adds the deduced conict clause to the clause database Determines the backtrack level Continues the search process
Performs conict analysis Adds the deduced conict clause to the clause database Checks for new clauses within the shared clause database Integrates all short and conicting clauses into its own context
Multiple calls of the conict analysis routine & backtrack operations
19 / 35
Performs conict analysis Adds the deduced conict clause to the clause database Determines the backtrack level Continues the search process
Performs conict analysis Adds the deduced conict clause to the clause database Checks for new clauses within the shared clause database Integrates all short and conicting clauses into its own context
Multiple calls of the conict analysis routine & backtrack operations
19 / 35
Performs conict analysis Adds the deduced conict clause to the clause database Determines the backtrack level Continues the search process
Performs conict analysis Adds the deduced conict clause to the clause database Checks for new clauses within the shared clause database Integrates all short and conicting clauses into its own context
Multiple calls of the conict analysis routine & backtrack operations
19 / 35
Performs conict analysis Adds the deduced conict clause to the clause database Determines the backtrack level Continues the search process
Performs conict analysis Adds the deduced conict clause to the clause database Checks for new clauses within the shared clause database Integrates all short and conicting clauses into its own context
Multiple calls of the conict analysis routine & backtrack operations
19 / 35
Performs conict analysis Adds the deduced conict clause to the clause database Determines the backtrack level Continues the search process
Performs conict analysis Adds the deduced conict clause to the clause database Checks for new clauses within the shared clause database Integrates all short and conicting clauses into its own context
Multiple calls of the conict analysis routine & backtrack operations
19 / 35
20 / 35
20 / 35
20 / 35
20 / 35
"New" Clauses
21 / 35
21 / 35
21 / 35
21 / 35
21 / 35
21 / 35
21 / 35
Outline
1 2 3
Parallel SAT Solving Related Work MiraXT Shared Clause Database Watched Literal Reference List Conict Clause Sharing Master Control Object Other Features Experimental Results Summary & Future Work
4 5
22 / 35
23 / 35
23 / 35
23 / 35
Outline
1 2 3
Parallel SAT Solving Related Work MiraXT Shared Clause Database Watched Literal Reference List Conict Clause Sharing Master Control Object Other Features Experimental Results Summary & Future Work
4 5
24 / 35
Other Features
Also integrated in MiraXT
Preprocessing
MiniSats preprocessing unit Unit Propagation Lookahead
Decision Heuristic
Similar to zChaffs VSIDS heuristic
Conict Analysis
Based on the 1UIP scheme
25 / 35
Other Features
Deletion of conict clauses
Shared Clause Database
26 / 35
Other Features
Deletion of conict clauses
Shared Clause Database
26 / 35
Other Features
Deletion of conict clauses
Shared Clause Database
26 / 35
Other Features
Deletion of conict clauses
Shared Clause Database
WL0
WL1
CV
26 / 35
Other Features
Deletion of conict clauses
Shared Clause Database
WL0
WL1
CV
26 / 35
Experimental Results
Setup
A total of 120 Benchmarks were selected
SAT Race 2006 IBM 2004 BMC
Dual-core workstation
Intel Core 2 Duo E6400 2.13 GHz 2 MB L2 Cache (Intel Advanced Smart Cache) 1 GB RAM
27 / 35
Experimental Results
Setup
A total of 120 Benchmarks were selected
SAT Race 2006 IBM 2004 BMC
Dual-core workstation
Intel Core 2 Duo E6400 2.13 GHz 2 MB L2 Cache (Intel Advanced Smart Cache) 1 GB RAM
27 / 35
Experimental Results
Setup
A total of 120 Benchmarks were selected
SAT Race 2006 IBM 2004 BMC
Dual-core workstation
Intel Core 2 Duo E6400 2.13 GHz 2 MB L2 Cache (Intel Advanced Smart Cache) 1 GB RAM
27 / 35
Experimental Results
Dual-Core aMd opteron processor-based 2p server and workstation AMD Opteron 280 based Dual-CPU Workstation
High bandwidth, low power DDR2 memory Memory is directly connected Processors are directly Memory capacity scales with to processors numbers of processors connected to processors; cores are connected on die
RDDR2
with Direct Connect Architecture Separate memory and I/O paths designed to remove bus contention
with Direct Connect Architecture HyperTransport technology link has ample bandwidth for I/O devices and x16 PCI-Express graphics
RDDR2
On
PCI-X
PCI-X bridge1
PCI Express
PCI
GbE, SATA, IDE, USB, LPC, Etc. PCI-Express I/O expansion hub2 PCI-Express bridge and I/O hub2
Dual PCI Express Graphics System supports full x16 bandwidth over dedicated HyperTransport links
Experimental Results
29 / 35
Experimental Results
29 / 35
Experimental Results
29 / 35
Experimental Results
Dual-Core AMD Opteron 280 based Dual-CPU Workstation
MiniSat2 1T Overall Runtime [s] Solved Instances #CC/s 64924.79 102 2043.24 68119.67 101 1604.92 MiraXT 2T 48384.57 109 3378.07 4T 39382.49 111 5850.05
29 / 35
Experimental Results
Dual-Core AMD Opteron 280 based Dual-CPU Workstation
MiniSat2 1T Overall Runtime [s] Solved Instances #CC/s 64924.79 102 2043.24 68119.67 101 1604.92 MiraXT 2T 48384.57 109 3378.07 4T 39382.49 111 5850.05
29 / 35
Experimental Results
Dual-Core AMD Opteron 280 based Dual-CPU Workstation
MiniSat2 1T Overall Runtime [s] Solved Instances #CC/s 64924.79 102 2043.24 68119.67 101 1604.92 MiraXT 2T 48384.57 109 3378.07 4T 39382.49 111 5850.05
29 / 35
Experimental Results
Dual-Core AMD Opteron 280 based Dual-CPU Workstation
MiniSat2 1T Overall Runtime [s] Solved Instances #CC/s 64924.79 102 2043.24 68119.67 101 1604.92 MiraXT 2T 48384.57 109 3378.07 4T 39382.49 111 5850.05
29 / 35
Experimental Results
46650.78
30 / 35
Experimental Results
46650.78
30 / 35
Experimental Results
46650.78
30 / 35
Experimental Results
Intel Core 2 Duo E6400
MiniSat2 Overall Runtime [s] Solved Instances #CC/s 56814.96 102 2637.30 MiraXT 1T 57649.03 103 2267.64 2T 109 3483.74
46650.78
30 / 35
Experimental Results
Intel Core 2 Duo E6400
MiniSat2 Overall Runtime [s] Solved Instances #CC/s 56814.96 102 2637.30 MiraXT 1T 57649.03 103 2267.64 2T 109 3483.74
46650.78
30 / 35
Good scaling in terms of conict clauses generated per second Promising speedups in the multi-threaded mode
Future Work
Optimizing the sequential core SAT algorithm Implementing an intelligent subproblem generation mechanism Tuning the clause sharing parameters Integrating MiniSats preprocessing unit directly into MiraXT Combining MiraXT with message passing: PaMiraXT
Tobias Schubert (University of Freiburg) MiraXT A Multi-Threaded SAT Solver May 31, 2007 31 / 35
Good scaling in terms of conict clauses generated per second Promising speedups in the multi-threaded mode
Future Work
Optimizing the sequential core SAT algorithm Implementing an intelligent subproblem generation mechanism Tuning the clause sharing parameters Integrating MiniSats preprocessing unit directly into MiraXT Combining MiraXT with message passing: PaMiraXT
Tobias Schubert (University of Freiburg) MiraXT A Multi-Threaded SAT Solver May 31, 2007 31 / 35
Model Extension
Shared Clause Database (readonly)
MiraXT
Master Control
Object
32 / 35
MiraXT
Can be executed as a parallel SAT engine with 4 threads on a single workstation but not on all 4 workstations in parallel
PaMira
Can be executed as a parallel SAT engine with 16 clients and 1 master on all 4 workstations in parallel Communication is completely done with message passing (even between clients located on the same quad-core CPU)
Tobias Schubert (University of Freiburg) MiraXT A Multi-Threaded SAT Solver May 31, 2007 33 / 35
MiraXT
Can be executed as a parallel SAT engine with 4 threads on a single workstation but not on all 4 workstations in parallel
PaMira
Can be executed as a parallel SAT engine with 16 clients and 1 master on all 4 workstations in parallel Communication is completely done with message passing (even between clients located on the same quad-core CPU)
Tobias Schubert (University of Freiburg) MiraXT A Multi-Threaded SAT Solver May 31, 2007 33 / 35
MiraXT
Can be executed as a parallel SAT engine with 4 threads on a single workstation but not on all 4 workstations in parallel
PaMira
Can be executed as a parallel SAT engine with 16 clients and 1 master on all 4 workstations in parallel Communication is completely done with message passing (even between clients located on the same quad-core CPU)
Tobias Schubert (University of Freiburg) MiraXT A Multi-Threaded SAT Solver May 31, 2007 33 / 35
Clause Database SAT Solver Client 0 Master Process Clause Database SAT Solver Client 1 PaMira: 1 Master, 4 Clients
34 / 35
Clause Database SAT Solver Client 0 Master Process Clause Database SAT Solver Client 1 PaMira: 1 Master, 4 Clients
34 / 35
Master Control
Master Control
Object
Object
Master Process
Master Control
Master Control
Object
Object
34 / 35
Interested in MiraXT?
Visit http://ira.informatik.uni-freiburg.de/schubert/
35 / 35