community branching for parallel portfolio sat solvers
play

Community Branching for Parallel Portfolio SAT Solvers Tomohiro - PowerPoint PPT Presentation

Community Branching for Parallel Portfolio SAT Solvers Tomohiro SONOBE*, Shuya KONDOH**, Mary INABA** *National Institute of Informatics, Japan **University of Tokyo, Japan 1 2 Outline Background portfolio and diversification


  1. Community Branching for Parallel Portfolio SAT Solvers Tomohiro SONOBE*, Shuya KONDOH**, Mary INABA** *National Institute of Informatics, Japan **University of Tokyo, Japan 1

  2. 2 Outline • Background • portfolio and diversification • Proposal: community branching • A new type of diversification • Experiment

  3. Background 3

  4. SAT solver (for application instances) preprocess + phase saving + LBD + etc. our target 4 • Sequential • DPLL + clause learning + backjump + VSIDS + restart + • Parallel • Using the sequential solvers as workers • Two major strategies: • Divide-and-conquer • Portfolio

  5. Portfolio solvers compete and cooperate to be the first to solve a given instance. 5 • Principle: let several differentiated but related • No effects in running same solvers as workers • Diversification • Differentiation of each solver

  6. Existing diversification worker frequency of restart, etc. in order to avoid overlaps of search spaces between the workers 6 • Differentiation of search parameters of each • e.g. decision heuristic, learning scheme, • Difficult to combine the parameters properly

  7. Our challenge differentiating target variables of each worker them as decision variables target variables can avoid the overlaps of the search spaces more vigorously and more easily 7 • Achieve a strong diversification by • Target variables: each worker prioritizes • A parallel search for different sets of the

  8. Image v11 v3 v4 v5 v6 v7 v8 v9 v10 v12 v1 v13 v14 v15 solver0 solver1 solver2 solver3 (solvers should have a color) variables in a cluster have strong relationships each other (structure) v2 v0 solver0 v4 existing diversification our diversification solver1 solver2 solver3 v0 v1 v2 v3 v5 CNF v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 8

  9. Proposal 9

  10. A new type of diversification differentiating search activities of the workers search spaces of the workers 10 • Existing diversification: focusing on • By differentiating the search parameters • Our diversification: focusing on differentiating • By differentiating the target variables

  11. How to organize the target variables? inefficient application instance 11 • Random choice? • Possible to diversify the search but can be • Something based on the structure of the • Community detection algorithm

  12. communities Community detection algorithm 12 • Graph clustering • High edge density in a community • Low edge density between • CNF -> Variable Incidence Graph (VIG)

  13. Variable Incidence Graph (VIG) [C. Ansótegui et al., 2012] two variables (x 1 V x 2 V x 3 V x 4 ) x 1 x 2 x 3 x 4 13 weight: 1/6 • Node: variable • Edge: existence of a clause relating • (x 1 V ... V x n ) results into n C 2 edges. • A weight for an edge: 1/ n C 2

  14. Community branching assigns the detected communities to each worker. assigned communities. considering the combination of the search parameters. 14 • Procedure: • A worker conducts the community detection and • Each worker conducts intensive searches for the • We can achieve an efficient diversification easily, not • Focusing on the differentiation of the search spaces

  15. Pseudo code We will reconstruct the communities by using learnt clauses. 15 called for every restart assign_communities() { coms = community_detection(convert_CNF_to_VIG(given_CNF + learnt_clauses )); sort_by_size_in_descending_order(coms); for(i = 0; i < coms.size(); i++) { worker_id = i % worker_num; assign(coms[i], worker_id); } } run_count = 0; community_branching() { if (run_count++ % INTERVAL > 0) return; [choose one of the assigned communities in rotation] for each var in the chosen community bump_VSIDS_score(var, BUMP_RATIO); }

  16. # of communities vs. # of workers com4 com2 com1 com0 solver3 solver2 solver1 solver0 com3 community > worker com2 com1 com0 community < worker solver3 solver2 solver1 solver0 16

  17. Experiment 17

  18. Experimental settings #1 results. method) [V. D. Blondel et al., 2008] 18 • Benchmark: 300 instances from SAT Competition 2011 application track • Timeout for each instance: 5000 wall-clock seconds • Each instance was solved twice and shorter time was selected. • Instances not solved by any solvers were not included in the following • Solver: PeneLoPe and parallelized version MiniSAT 2.2 (ParaMiniSAT) • Community detection algorithm: graph folding algorithm (Louvain • Time-efficient in preliminary experiments(up to 100 seconds)

  19. restarts experiments Experimental settings #2 19 • PC: two Intel Xeon six-core CPUs @3.33GHz, 144 GB of RAM • 8 and 12 threads • Parameter settings • INTERVAL and BUMP_RATIO: chosen from preliminary • Community reconstruction interval: every 3000 (or 500) • Others: default settings • Clause sharing up to length 8 in ParaMiniSAT

  20. Over all result: PeneLoPe@8threads 103 (150870) 230 (103450) 126 (47420) 104 ump100 cri3000_int1_b (156570) 225 (104570) 122 (52000) mp100 with deterministic mode cri500_int1_bu (188140) 219 (128480) 116 (59660) 103 no_cb (time) total (time) UNSAT(126) (time) SAT(105) 20

  21. # of communities and speedup for SAT instances (over 100 seconds) 21 the number of communities g n i h c n a r b y t i n u m m o c y b p u d e e p s

  22. # of communities and speedup for UNSAT instances (over 100 seconds) 22 the number of communities g n i h c n a r b y t i n u m m o c y b p u d e e p s

  23. Over all result: PeneLoPe@8threads 235 (125260) 239 (82350) 131 (42910) 108 bump100 cri3000_int1_ (133120) (100680) without deterministic mode 126 (32440) 109 no_cb (time) total (time) UNSAT(132) (time) SAT(110) 23

  24. Over all result: ParaMiniSAT (150520) cri3000_int3_ bump10000_t8 109 (42630) 130 (107890) 239 cri3000_int3_ 235 bump10000_t12 109 (32700) 129 (102330) 238 (135030) (147920) (11550) @8 and 12threads 110 SAT(111) (time) UNSAT(135) (time) total (time) no_cb_t8 (33790) 125 122 (131640) 232 (165430) no_cb_t12 110 (32420) 24

  25. Future work workers community into multiple communities. 25 • Dynamic parameters • e.g. according to the number of detected communities and • Other community detection algorithms • The number of detected communities can be different. • Scalability • In case of workers > communities, we should divide a

  26. Summary search spaces between workers efficiency in a simple manner. diversification techniques 26 • A new type of diversification: differentiating • By differentiating target variables • Community branching can boost the search • Possible to coexist (cooperate) with existing

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend