Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W....

40
Parallelizing Partial MUS Enumeration Wenting Zhao and Mark Liffiton Department of Computer Science Illinois Wesleyan University {wzhao,mliffito}@iwu.edu http://www.iwu.edu/ ~ mliffito/marco/ ICTAI — November 7, 2016 San Jose, CA

Transcript of Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W....

Page 1: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Parallelizing Partial MUS Enumeration

Wenting Zhao and Mark Liffiton

Department of Computer ScienceIllinois Wesleyan University

{wzhao,mliffito}@iwu.eduhttp://www.iwu.edu/~mliffito/marco/

ICTAI — November 7, 2016San Jose, CA

Page 2: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Parallelizing Partial MUS Enumeration [is Easy]

Wenting Zhao and Mark Liffiton

Department of Computer ScienceIllinois Wesleyan University

{wzhao,mliffito}@iwu.eduhttp://www.iwu.edu/~mliffito/marco/

ICTAI — November 7, 2016San Jose, CA

Page 3: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Overview

Problem

Analyzing infeasible constraint sets

“Constraint”= SAT, SMT, CP, LP, IP, MIP, . . .(Implemented/tested w/ SAT & SMT.)

“Analyzing”Enumerating MUSes/IISes(“Explanations” of infeasibility.)

Contributions

1 MARCOs: Parallel algorithm forpartial MUS enumeration.

2 Study of performance impact ofvariants and implementationchoices.

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 3 / 20

Page 4: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Overview

Problem

Analyzing infeasible constraint sets

“Constraint”= SAT, SMT, CP, LP, IP, MIP, . . .(Implemented/tested w/ SAT & SMT.)

“Analyzing”Enumerating MUSes/IISes(“Explanations” of infeasibility.)

Contributions

1 MARCOs: Parallel algorithm forpartial MUS enumeration.

2 Study of performance impact ofvariants and implementationchoices.

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 3 / 20

Page 5: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Outline

1 BackgroundDefinitionsEarlier Work: Sequential MUS EnumerationEarlier Work: Parallel MUS Extraction

2 MARCOsMARCOs AlgorithmExperimental Results

3 Conclusion

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 4 / 20

Page 6: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Definitions

“Characteristic Subsets” of an infeasible constraint set C

MUS Minimal Unsatisfiable Subsetaka Irreducible Inconsistent Subsystem (IIS).

M ⊆ C s.t. M is UNSAT and ∀c ∈ M : M \ {c} is SAT

MSS Maximal Satisfiable Subseta generalization of MaxSAT / MaxFS.

M ⊆ C s.t. M is SAT and ∀c ∈ C \M : M ∪ {c} is UNSAT

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 5 / 20

Page 7: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Definitions / Example

“Characteristic Subsets”

MUS Minimal Unsatisfiable Subset

MSS Maximal Satisfiable Subset

Example (Constraint set C , Boolean SAT)

C = { (a) , (¬a ∨ b) , (¬b) , (¬a) }1 2 3 4

MUSes

{1, 2, 3}{1, 4}

MSSes

{2, 3, 4}{1, 3}{1, 2}

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 6 / 20

Page 8: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Example, Powerset Visualization

Hasse diagram of powerset for:

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 7 / 20

Page 9: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Example, Powerset Visualization

Hasse diagram of powerset for:

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 7 / 20

Page 10: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 11: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = > ← formula storing unexplored subsets

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 12: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = > ← formula storing unexplored subsetsSeed: {1, 2, 3, 4}

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 13: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = > ← formula storing unexplored subsetsSeed: {1, 2, 3, 4}MUS: {1, 4}

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 14: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = (¬X1 ∨ ¬X4)Seed: {1, 2, 3, 4}MUS: {1, 4}

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 15: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = (¬X1 ∨ ¬X4)Seed: {2, 3, 4}

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 16: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = (¬X1 ∨ ¬X4)Seed: {2, 3, 4}MSS: {2, 3, 4}

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 17: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = (¬X1 ∨ ¬X4) ∧ (X1)Seed: {2, 3, 4}MSS: {2, 3, 4}

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 18: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Sequential MUS Enumeration

MARCO [CPAIOR 2013, Constraints 2016]

Mapping Regions of Constraint sets

Map = (¬X1 ∨ ¬X4) ∧ (X1)

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 8 / 20

Page 19: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Parallel MUS Extraction

MUSer2-para [Belov, Manthey, & Marques-Silva, SAT 2013]

Checks necessity of multiple clauses in parallel.

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 9 / 20

Page 20: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Parallel MUS Extraction

MUSer2-para [Belov, Manthey, & Marques-Silva, SAT 2013]

Checks necessity of multiple clauses in parallel.

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 9 / 20

Page 21: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Parallel MUS Extraction

MUSer2-para [Belov, Manthey, & Marques-Silva, SAT 2013]

Checks necessity of multiple clauses in parallel.

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 9 / 20

Page 22: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Parallel MUS Extraction

MUSer2-para [Belov, Manthey, & Marques-Silva, SAT 2013]

Checks necessity of multiple clauses in parallel.

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 9 / 20

Page 23: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Earlier Work: Parallel MUS Extraction

MUSer2-para [Belov, Manthey, & Marques-Silva, SAT 2013]

Checks necessity of multiple clauses in parallel.

C = {(a),(¬a ∨ b),(¬b),(¬a)}1 2 3 4

(1,2,3,4) = C

(1,2,3) (1,2,4) (1,3,4) (2,3,4)

(1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

(1) (2) (3) (4)

() = empty set

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 9 / 20

Page 24: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Goals of This Work

1 Parallel MUS enumeration

2 Constraint-agnostic

3 Flexible: easily able to adopt improvement in MUS enumeration

4 Scales well on multi-core machines

Ideal: Perfect scaling. k times speedup on k-core machine.

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 10 / 20

Page 25: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

MARCOs

MARCOs: Mapping Regions of Constraint sets Simultaneously

Parallelization of MARCO

Master-worker architecture

Limits / avoids two enemies of scaling:

1 Communication between threads2 Duplicate / redundant work

Basic Algorithm:

1 Run k parallel copies of MARCO

2 Filter duplicate results

Optional:

Share results between workers

Randomize solver in each worker

Alternative: parallelize MARCO using MUSer2-para

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20

Page 26: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

MARCOs

MARCOs: Mapping Regions of Constraint sets Simultaneously

Parallelization of MARCO

Master-worker architecture

Limits / avoids two enemies of scaling:

1 Communication between threads2 Duplicate / redundant work

Basic Algorithm:

1 Run k parallel copies of MARCO

2 Filter duplicate results

Optional:

Share results between workers

Randomize solver in each worker

Alternative: parallelize MARCO using MUSer2-para

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20

Page 27: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

MARCOs

MARCOs: Mapping Regions of Constraint sets Simultaneously

Parallelization of MARCO

Master-worker architecture

Limits / avoids two enemies of scaling:

1 Communication between threads2 Duplicate / redundant work

Basic Algorithm:

1 Run k parallel copies of MARCO

2 Filter duplicate results

Optional:

Share results between workers

Randomize solver in each worker

Alternative: parallelize MARCO using MUSer2-para

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20

Page 28: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

MARCOs

MARCOs: Mapping Regions of Constraint sets Simultaneously

Parallelization of MARCO

Master-worker architecture

Limits / avoids two enemies of scaling:

1 Communication between threads2 Duplicate / redundant work

Basic Algorithm:

1 Run k parallel copies of MARCO

2 Filter duplicate results

Optional:

Share results between workers

Randomize solver in each worker

Alternative: parallelize MARCO using MUSer2-para

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20

Page 29: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Experimental Setup

Implementation

MUS extraction: MUSer2[-para] [Belov & Marques-Silva, JSAT 2012]

SAT solver: MiniSAT v2.2Platform: Python w/ multiprocessing library

Benchmarks309 Boolean CNF instances selected from several sources

limited representation per “family” to 5 instances

Filtered to 263 instances for which:

some algorithm found at least one MUSsequential MARCO does not complete

Experiments

CPU: Intel Xeon E5-2680 v2 [Amazon EC2 ‘c3.8xlarge’ instances]

Cores/threads: k = 1, 2, 4, 8, or 16 per executionRAM limit: 3500·k MBTime limit: 10min / 600sec

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 12 / 20

Page 30: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Experimental Setup

Implementation

MUS extraction: MUSer2[-para] [Belov & Marques-Silva, JSAT 2012]

SAT solver: MiniSAT v2.2Platform: Python w/ multiprocessing library

Benchmarks309 Boolean CNF instances selected from several sources

limited representation per “family” to 5 instances

Filtered to 263 instances for which:

some algorithm found at least one MUSsequential MARCO does not complete

Experiments

CPU: Intel Xeon E5-2680 v2 [Amazon EC2 ‘c3.8xlarge’ instances]

Cores/threads: k = 1, 2, 4, 8, or 16 per executionRAM limit: 3500·k MBTime limit: 10min / 600sec

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 12 / 20

Page 31: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Experimental Setup

Implementation

MUS extraction: MUSer2[-para] [Belov & Marques-Silva, JSAT 2012]

SAT solver: MiniSAT v2.2Platform: Python w/ multiprocessing library

Benchmarks309 Boolean CNF instances selected from several sources

limited representation per “family” to 5 instances

Filtered to 263 instances for which:

some algorithm found at least one MUSsequential MARCO does not complete

Experiments

CPU: Intel Xeon E5-2680 v2 [Amazon EC2 ‘c3.8xlarge’ instances]

Cores/threads: k = 1, 2, 4, 8, or 16 per executionRAM limit: 3500·k MBTime limit: 10min / 600sec

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 12 / 20

Page 32: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Experimental Results: Scaling (with Randomization, no Results-Sharing)

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 13 / 20

Page 33: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Experimental Results: Effect of Adding Results-Sharing

Results-sharing has very little effecton performance

Effect is overall negative

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 14 / 20

Page 34: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Experimental Results: Effect of Removing Randomization

Randomization is critical

Results-sharing is not sufficient toavoid duplicate work

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 15 / 20

Page 35: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Experimental Results: Duplicate MUSes

Search space is massive

Randomization alone provides resultswith little to no overlap (for partialMUS enumeration)

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 16 / 20

Page 36: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Conclusion

Contributions

1 MARCOs Algorithm:

Parallelization of MARCOAchieves substantial fraction of perfect scalingEasily integrates improvements to MARCO

2 Performance Study:

Results-sharing typically unimportant due to massive search spaceRandomization provides sufficient duplicate protection

Thank you.Source code: http://www.iwu.edu/~mliffito/marco/

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 17 / 20

Page 37: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Overview Background MARCOs Conclusion

Conclusion

Contributions

1 MARCOs Algorithm:

Parallelization of MARCOAchieves substantial fraction of perfect scalingEasily integrates improvements to MARCO

2 Performance Study:

Results-sharing typically unimportant due to massive search spaceRandomization provides sufficient duplicate protection

Thank you.Source code: http://www.iwu.edu/~mliffito/marco/

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 17 / 20

Page 38: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Additional Results

Performance cost of communication

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 18 / 20

Page 39: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Additional Results

Performance benefit of using shared results

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 19 / 20

Page 40: Parallelizing Partial MUS Enumerationmliffito/publications/ictai16_zhao... · 2016-11-18 · W. Zhao and M. Li ton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 11 / 20.

Additional Results

Combined performance chart

W. Zhao and M. Liffiton (IWU) Parallelizing Partial MUS Enumeration ICTAI-2016 20 / 20