Parallel Automated Reasoning Ruben Martins - - PowerPoint PPT Presentation

parallel automated reasoning
SMART_READER_LITE
LIVE PREVIEW

Parallel Automated Reasoning Ruben Martins - - PowerPoint PPT Presentation

. . . . . . . . . . . . . . . . . 1/38 Parallel Automated Reasoning Ruben Martins http://www.cs.cmu.edu/~mheule/15816-f19/ . . . . . . . . . . . . . . . . . . . . . . . Automated Reasoning and


slide-1
SLIDE 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1/38

Parallel Automated Reasoning

Ruben Martins http://www.cs.cmu.edu/~mheule/15816-f19/ Automated Reasoning and Satisfjability, October 3, 2019

slide-2
SLIDE 2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2/38

Why Parallelization? Power Wall

slide-3
SLIDE 3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3/38

How to parallelize SAT?

slide-4
SLIDE 4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3/38

How to parallelize SAT?

slide-5
SLIDE 5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4/38

Portfolio Approach

Basic Idea: ▶ Run several solvers in parallel ▶ Stop when the fjrst solver fjnds a solution or proves unsatisfjability SAT Competition 2011: ▶ ppfolio// wins 11 medals, best solver in competition ▶ This solver is equivalent to type: solver1 & solver2 & . . . & solvern

slide-6
SLIDE 6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4/38

Portfolio Approach

Basic Idea: ▶ Run several solvers in parallel ▶ Stop when the fjrst solver fjnds a solution or proves unsatisfjability SAT Competition 2011: ▶ ppfolio// wins 11 medals, best solver in competition ▶ This solver is equivalent to type: solver1 & solver2 & . . . & solvern Can we do better?

slide-7
SLIDE 7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4/38

Portfolio Approach

Basic Idea: ▶ Run several solvers in parallel ▶ Stop when the fjrst solver fjnds a solution or proves unsatisfjability SAT Competition 2011: ▶ ppfolio// wins 11 medals, best solver in competition ▶ This solver is equivalent to type: solver1 & solver2 & . . . & solvern Can we do better? ▶ Exchange learned clauses ▶ Increase diversity between solvers

slide-8
SLIDE 8

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5/38

Portfolio Solvers: ManySAT

Restart Heuristic Polarity Learning Core 0 Geometric VSIDS if #occ(l) > #occ(¬l) CDCL x1 = 100 (3% rand.) l = true (extended) xi = 1.5 × xi−1 else l = false Core 1 Dynamic (fast) VSIDS Progress saving CDCL α = 1200 (2% rand.) x1 = 100, x2 = 100 xi = f(yi−1, yi), i > 2 if yi−1 < yi f(yi−1,yi) =

α yi ×

  • cos(1 − yi−1

yi )

  • else

f(yi−1,yi) =

α yi ×

  • cos(1 −

yi yi−1)

  • Core 2

Arithmetic VSIDS false CDCL x1 = 16000 (2% rand.) xi = xi−1 + 16000 Core 3 Luby 512 VSIDS Progress saving CDCL (2% rand.) (extended)

slide-9
SLIDE 9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6/38

Portfolio Solvers: ManySAT

slide-10
SLIDE 10

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7/38

Portfolio Solvers: HordeSAT

What is the impact of diversifjcation and clause exchange? ▶ 16 processes with 1 thread each ▶ Random 3-SAT, only satisfjable instances

slide-11
SLIDE 11

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7/38

Portfolio Solvers: HordeSAT

What is the impact of diversifjcation and clause exchange? ▶ 16 processes with 1 thread each ▶ Random 3-SAT, only unsatisfjable instances

slide-12
SLIDE 12

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8/38

Portfolio Solvers: HordeSAT

How scalable are portfolio approaches?

slide-13
SLIDE 13

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8/38

Portfolio Solvers: HordeSAT

How scalable are portfolio approaches? ▶ (#nodes)x(#processes/node)x(#threads/process)

slide-14
SLIDE 14

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9/38

Search Space Splitting Approach

Basic idea: ▶ Split the search space into disjoint subspaces ▶ Each process searches in a disjoint subspace ▶ Load balancing mechanism to maintain all processes busy How to split the search space?

slide-15
SLIDE 15

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9/38

Search Space Splitting Approach

Basic idea: ▶ Split the search space into disjoint subspaces ▶ Each process searches in a disjoint subspace ▶ Load balancing mechanism to maintain all processes busy How to split the search space?

slide-16
SLIDE 16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10/38

Search Space Splitting

▶ Guiding path S1: x1 = 0, x2 = 0 ▶ Restricts the search space of a given process

slide-17
SLIDE 17

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10/38

Search Space Splitting

▶ Unused guiding paths are stored in the work queue

slide-18
SLIDE 18

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10/38

Search Space Splitting

▶ If a subspace is unsatisfjable, then the process gets a new subspace

slide-19
SLIDE 19

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10/38

Search Space Splitting

▶ Dynamic work stealing procedure guarantees that all processes are always working

slide-20
SLIDE 20

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10/38

Search Space Splitting

slide-21
SLIDE 21

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11/38

Can we do a better split of the search space?

slide-22
SLIDE 22

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12/38

Confmict-Driven Clause Learning solvers

Highlights: ▶ goal: fjnd small efgective confmict clauses ▶ decisions: assign variables that occur in recent confmicts ▶ strength: powerful on “easy” problems General CDCL situation: ▶ hit a confmict that can be generalized / analyzed to a large clause

slide-23
SLIDE 23

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13/38

Lookahead solvers

Highlights: ▶ goal: construct a small binary search tree ▶ decisions: assign variables that cause a large reduction ▶ strength: powerful on small hard problems Ideal lookahead situation: ▶ split the search space into two equally large but smaller parts

slide-24
SLIDE 24

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14/38

Lookahead solvers

Highlights: ▶ goal: construct a small binary search tree ▶ decisions: assign variables that cause a large reduction ▶ strength: powerful on small hard problems General lookahead situation: ▶ the search space is split into a large and a small part

slide-25
SLIDE 25

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15/38

Best of both worlds: Combining Lookahead and CDCL L

  • k

a h e a d C D C L

slide-26
SLIDE 26

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16/38

Best of both worlds: Cube and Conquer

C U B E & C O N Q U E R

slide-27
SLIDE 27

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17/38

Cube: key observation

Split until the problem becomes easy ▶ do not have a fjxed cut ofg depth ▶ determine hardness by number of assigned variables ▶ create many thousands or even millions of cubes General lookahead situation: ▶ the search space is split into a large and a small part

slide-28
SLIDE 28

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18/38

Cube: example

x5 x7 t x8 t f x2 t t f x9 f t f x2 f x3 f x7 t f t f x8 t x9 t t f f F1 := F ∧ (x5 ∧ x7 ∧ ¬x8) F2 := F ∧ (x5 ∧ x7 ∧ x8 ∧ x2) F3 := F ∧ (x5 ∧ ¬x7 ∧ x9) F4 := F ∧ (x5 ∧ ¬x7 ∧ ¬x9) F5 := F ∧ (¬x5 ∧ ¬x2 ∧ ¬x3) F6 := F ∧ (¬x5 ∧ x2 ∧ x8 ∧ x9) F7 := F ∧ (¬x5 ∧ x2 ∧ x8 ∧ ¬x9) cutofg branch refuted branch

slide-29
SLIDE 29

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19/38

Conquer: describing cubes

How much information to send to the CDCL solver? ▶ Only the decisions ∧ ϕdec ▶ The full assignment (including failed literals) ∧ ϕdec ∧ ϕimp ▶ The simplifjed formula (including local learnt clauses)

slide-30
SLIDE 30

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20/38

Conquer: ordering cubes

What is the optimal order to solve the cubes? ▶ Depth-fjrst search (in lookahead order)

1 2 3 4 5 6

▶ Solves cubes with increasing (approximated) search space

4 1 5 3 6 2

▶ Solves cubes with decreasing (approximated) search space

4 1 5 3 6 2

slide-31
SLIDE 31

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21/38

Conquer: parallel solving Strategies to solve cubes in parallel:

  • 1. cores solve difgerent cubes in parallel
  • 2. cores solve the same cube in parallel
  • 3. start with (1) till no new cubes are available, continue

with (2)

What to share between cores?

nothing, so hardly communication required (only ask / receive cubes) sharing the learned clauses (maybe only to master) sharing the short confmict clauses, units (maybe also binaries)

slide-32
SLIDE 32

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21/38

Conquer: parallel solving Strategies to solve cubes in parallel:

  • 1. cores solve difgerent cubes in parallel
  • 2. cores solve the same cube in parallel
  • 3. start with (1) till no new cubes are available, continue

with (2)

What to share between cores?

▶ nothing, so hardly communication required (only ask / receive cubes) ▶ sharing the learned clauses (maybe only to master) ▶ sharing the short confmict clauses, units (maybe also binaries)

slide-33
SLIDE 33

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22/38

Results: two experiments 1st experiment: single core on Van der Waerden numbers

▶ hard combinatorial problem in Ramsey Theory ▶ comparison with the best solver for each instance ▶ cube solver: OKsolver ▶ conquer solver: minisat

2nd experiment: multi core on challenging applications

▶ unsolved application instances from the SAT09 benchmarks ▶ comparison with the best parallel solvers ▶ cube solver: march ▶ conquer solver: lingeling

slide-34
SLIDE 34

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23/38

Results: palindromic Van der Waerden numbers

▶ k1 : arithmetic progression of fjrst set; ▶ k2 : arithmetic progression of second set; ▶ n : number of elements to partition; ▶ best solver : time of fastest sequential solver; ▶ D : cut ofg depth. k1 k2 n #cls ? best solver D #cubes C&C 3 25 586 45779 S ∼ 13 days 45 9120 6.5 hours 3 25 607 49427 U ∼ 13 days 45 13462 2 days 4 12 387 15544 S > 14 days 30 132131 2 days 4 12 394 15889 U > 14 days 34 147237 8 hours 5 8 312 9121 S 3.5 days 20 2248 5 hours 5 8 313 9973 U 53 days 20 87667 40 hours

slide-35
SLIDE 35

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24/38

Results: parallel SAT solving Portfolio solvers:

▶ run multiple versions of the same solver (difgerent seeds) ▶ share short confmict clauses such as units ▶ solver pLingeling (pLing), on a 12-core machine

Grid based SAT solving approach:

▶ run solvers with difgerent cubes on a grid ▶ grid constraints: limited communication, possible delay and timeout ▶ solver PartitionTree (PTree) on a grid, up to 60 jobs in parallel

slide-36
SLIDE 36

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25/38

Results: hard application benchmarks

I II II pLing PTree Benchmark ? #cubes total total 12-core 12-core 60-core 9dlx_vliw_at_b_iq8 U 121 150 — — 3256 — 9dlx_vliw_at_b_iq9 U 100 179 — — 5164 — AProVE07-25 U 84247 89 100340 8690 — 9967 dated-5-19-u U 57716 418 3214 1451 4465 2522 eq.atree.braun.12 U 86541 85 3261 273 — 4691 eq.atree.braun.13 U 81313 77 18165 1517 — 9972 gss-24-s100 S 18237 48 4975 415 2930 3492 gss-26-s100 S 19455 57 37259 3108 18173 10347 gus-md5-14 U 60102 961 — — — 13890 ndhf_xits_09_UNS U 37358 82 71096 12041 — 9583 rbcl_xits_09_UNK U 54669 132 94911 11542 — 9819 rpoc_xits_09_UNS U 30681 114 48028 8366 — 8635 sortnet-8-ipc5-h19 S 724 153 48668 4067 2700 4304 total-10-17-u U 9192 288 5638 4517 3672 4447 total-5-15-u U 14914 215 — — — 18670

slide-37
SLIDE 37

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26/38

Results: hard application benchmarks

I II II pLing PTree Benchmark ? #cubes total total 12-core 12-core 60-core 9dlx_vliw_at_b_iq8 U 121 150 — — 3256 — 9dlx_vliw_at_b_iq9 U 100 179 — — 5164 — AProVE07-25 U 84247 89 100340 8690 — 9967 dated-5-19-u U 57716 418 3214 1451 4465 2522 eq.atree.braun.12 U 86541 85 3261 273 — 4691 eq.atree.braun.13 U 81313 77 18165 1517 — 9972 gss-24-s100 S 18237 48 4975 415 2930 3492 gss-26-s100 S 19455 57 37259 3108 18173 10347 gus-md5-14 U 60102 961 — — — 13890 ndhf_xits_09_UNS U 37358 82 71096 12041 — 9583 rbcl_xits_09_UNK U 54669 132 94911 11542 — 9819 rpoc_xits_09_UNS U 30681 114 48028 8366 — 8635 sortnet-8-ipc5-h19 S 724 153 48668 4067 2700 4304 total-10-17-u U 9192 288 5638 4517 3672 4447 total-5-15-u U 14914 215 — — — 18670

slide-38
SLIDE 38

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27/38

Results: hard application benchmarks

I II II pLing PTree Benchmark ? #cubes total total 12-core 12-core 60-core 9dlx_vliw_at_b_iq8 U 121 150 — — 3256 — 9dlx_vliw_at_b_iq9 U 100 179 — — 5164 — AProVE07-25 U 84247 89 100340 8690 — 9967 dated-5-19-u U 57716 418 3214 1451 4465 2522 eq.atree.braun.12 U 86541 85 3261 273 — 4691 eq.atree.braun.13 U 81313 77 18165 1517 — 9972 gss-24-s100 S 18237 48 4975 415 2930 3492 gss-26-s100 S 19455 57 37259 3108 18173 10347 gus-md5-14 U 60102 961 — — — 13890 ndhf_xits_09_UNS U 37358 82 71096 12041 — 9583 rbcl_xits_09_UNK U 54669 132 94911 11542 — 9819 rpoc_xits_09_UNS U 30681 114 48028 8366 — 8635 sortnet-8-ipc5-h19 S 724 153 48668 4067 2700 4304 total-10-17-u U 9192 288 5638 4517 3672 4447 total-5-15-u U 14914 215 — — — 18670

slide-39
SLIDE 39

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28/38

Architecture of parallel SAT solvers

▶ Most parallel SAT solvers has its own clause database!

slide-40
SLIDE 40

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29/38

Other forms of parallelization

Parallel unit propagation: ▶ More than 90% of the SAT solver is spent doing unit propagations Number of new implied literals Ratio 2 13% 4 4% Can we fjnd these implied literals in parallel?

slide-41
SLIDE 41

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29/38

Other forms of parallelization

Parallel unit propagation: ▶ More than 90% of the SAT solver is spent doing unit propagations Number of new implied literals Ratio 2 13% 4 4% Can we fjnd these implied literals in parallel? Does not scale beyond 2 cores!

slide-42
SLIDE 42

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29/38

Other forms of parallelization

Parallel unit propagation: ▶ More than 90% of the SAT solver is spent doing unit propagations In the worst case unit propagation is inherently sequential: ϕ = (¬x1) ∧ (x1 ∨ x2) ∧ (x1 ∨ ¬x2 ∨ x3) ∧ (¬x2 ∨ ¬x3 ∨ x4) . . . Applying unit propagation to ϕ results in the following chain

  • f successive (sequential) and unique implications:

▶ x1 = 0 → x2 = 1 → x3 = 1 → x4 = 1 . . .

slide-43
SLIDE 43

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

30/38

What about parallel MaxSAT?

slide-44
SLIDE 44

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31/38

Parallel MaxSAT solver (2 threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

LB Search UB Search Optimum Value

▶ The optimum value is found when:

▶ LB or UB search terminates with a solution; ▶ or when LB value = UB value.

slide-45
SLIDE 45

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31/38

Parallel MaxSAT solver (2 threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

LB Search UB Search Optimum Value

▶ The optimum value is found when:

▶ LB or UB search terminates with a solution; ▶ or when LB value = UB value.

T0 T1 LB UB 1 2 3 4 5 6 7 8 9 10 11 12

slide-46
SLIDE 46

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31/38

Parallel MaxSAT solver (2 threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

LB Search UB Search Optimum Value

▶ The optimum value is found when:

▶ LB or UB search terminates with a solution; ▶ or when LB value = UB value.

T0 T1 LB UB 1 2 3 4 5 6 7 8 9 10 11 12 T0 returns UNSAT; update lower bound value

slide-47
SLIDE 47

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31/38

Parallel MaxSAT solver (2 threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

LB Search UB Search Optimum Value

▶ The optimum value is found when:

▶ LB or UB search terminates with a solution; ▶ or when LB value = UB value.

T0 T1 LB UB 1 2 3 4 5 6 7 8 9 10 11 12 T1 returns SAT; update upper bound value

slide-48
SLIDE 48

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31/38

Parallel MaxSAT solver (2 threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

LB Search UB Search Optimum Value

▶ The optimum value is found when:

▶ LB or UB search terminates with a solution; ▶ or when LB value = UB value.

T0 T1 LB UB 1 2 3 4 5 6 7 8 9 10 11 12 T0 returns UNSAT; update lower bound value

slide-49
SLIDE 49

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31/38

Parallel MaxSAT solver (2 threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

LB Search UB Search Optimum Value

▶ The optimum value is found when:

▶ LB or UB search terminates with a solution; ▶ or when LB value = UB value.

T0; T1 LB; UB 1 2 3 4 5 6 7 8 9 10 11 12 T1 returns SAT; update upper bound value

slide-50
SLIDE 50

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31/38

Parallel MaxSAT solver (2 threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

LB Search UB Search Optimum Value

▶ The optimum value is found when:

▶ LB or UB search terminates with a solution; ▶ or when LB value = UB value.

T0; T1 LB; UB 1 2 3 4 5 6 7 8 9 10 11 12 LB value = UB value, optimal value has been found

slide-51
SLIDE 51

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32/38

Parallel MaxSAT solver (n threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

Optimum Value

Different At-most-one Cardinality Encodings Different At-most-k Cardinality Encodings

LB Search

T0

Commander LB Search

T1

Totalizer UB Search

T2

Sorters UB Search

T3

Naive

Exchange Information:

  • Learned Clauses
slide-52
SLIDE 52

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32/38

Parallel MaxSAT solver (n threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

Optimum Value

Different At-most-one Cardinality Encodings Different At-most-k Cardinality Encodings

LB Search

T0

Commander LB Search

T1

Totalizer UB Search

T2

Sorters UB Search

T3

Naive

Exchange Information:

  • Learned Clauses
slide-53
SLIDE 53

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32/38

Parallel MaxSAT solver (n threads)

▶ Search in the lower and upper bound values of the

  • ptimal solution:

Optimum Value

Different At-most-one Cardinality Encodings Different At-most-k Cardinality Encodings

LB Search

T0

Commander LB Search

T1

Totalizer UB Search

T2

Sorters UB Search

T3

Naive

Exchange Information:

  • Learned Clauses
slide-54
SLIDE 54

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33/38

Experimental Results

200 400 600 800 1000 1200 1400 1600 1800 260 280 300 320 340 360 380 400 wall clock time (seconds) instances wbo PM2 QMaxSAT pwbo T4-CNF pMAX T4

slide-55
SLIDE 55

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33/38

Experimental Results

200 400 600 800 1000 1200 1400 1600 1800 260 280 300 320 340 360 380 400 wall clock time (seconds) instances wbo PM2 QMaxSAT pwbo T4-CNF pMAX T4

slide-56
SLIDE 56

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34/38

Experimental Results

▶ Impact of sharing learned clauses (seconds):

101 102 103 101 102 103 pMAX 4T w/o sharing pMAX 4T w/ sharing

slide-57
SLIDE 57

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35/38

Experimental Results

▶ Scalability of pMAX (seconds):

101 102 103 101 102 103 pMAX 8T pMAX 4T

slide-58
SLIDE 58

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36/38

Experimental Results

▶ Speedup on instances solved by all solvers: Solver Time (s) Speedup wbo 67,947.41 1.00 pwbo 4T-CNF 18,015.69 3.77 pMAX 4T 11,382.91 5.97 pMAX 8T 7,990.10 8.50 Does not scale beyond 8 cores!

slide-59
SLIDE 59

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36/38

Experimental Results

▶ Speedup on instances solved by all solvers: Solver Time (s) Speedup wbo 67,947.41 1.00 pwbo 4T-CNF 18,015.69 3.77 pMAX 4T 11,382.91 5.97 pMAX 8T 7,990.10 8.50 ▶ Does not scale beyond 8 cores!

slide-60
SLIDE 60

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37/38

Conclusions

Parallelization of SAT algorithms is hard! Success stories: ▶ Cube and Conquer on thousands of nodes to solve hard combinatorial problems:

▶ Pythagorean Triples ▶ Schur Number Five

▶ Variable Elimination using GPUs

▶ 66× speedup ▶ NVIDIA Titan Xp GPU (30 SMs with 128 cores each)

Still many open research directions for scalability in parallel SAT solving!

slide-61
SLIDE 61

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38/38

Parallel Automated Reasoning

Ruben Martins http://www.cs.cmu.edu/~mheule/15816-f19/ Automated Reasoning and Satisfjability, October 3, 2019