large-scale hybrid parallel sat solving
DESCRIPTION
Large-scale Hybrid Parallel SAT Solving. Nishant Totla , Aditya Devarakonda , Sanjit Seshia. Motivation. SAT solvers have had immense gains in efficiency over the last decade. Yet, many instances are still beyond the reach of modern solvers - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/1.jpg)
Large-scale Hybrid Parallel SAT SolvingNishant Totla, Aditya Devarakonda, Sanjit Seshia
![Page 2: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/2.jpg)
MotivationSAT solvers have had immense gains in
efficiency over the last decade
Yet, many instances are still beyond the reach of modern solvers
Some hard instances still take a long time to solve
Source: http://cacm.acm.org/magazines/2009/8/34498-boolean-satisfiability-from-theoretical-hardness-to-practical-success/fulltext
Algorithmic/heuristic gains have been going down, so parallelization is the next step
Multicore hardware is now more easily accessible
![Page 3: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/3.jpg)
Parallel SAT Solving : Divide-and-Conquer
SAT solvers look for a satisfying assignment in a search space
Divided parts of this space can be assigned to each parallel worker
Challenges:Difficult to get the division of search space rightSharing information becomes tricky
![Page 4: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/4.jpg)
Parallel SAT Solving : Portfolios
SAT solvers are very sensitive to parameter tuningMultiple solvers can be initialized differently and
run on the same problem instanceLearned clauses can be shared as the search
progressesChallenges:
Difficult to scale to large number of processorsSharing overheads quickly increase with scaling
Portfolio solvers have performed better in practice
![Page 5: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/5.jpg)
ObjectivesBuild a parallel SAT solver that
Scales to a large number of coresDemonstrates parallel scalingProvides speedups over existing solversSolves instances that existing solvers cannotUses high-level domain-specific information
![Page 6: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/6.jpg)
Our approachWe combine the two approaches to create a
more versatile and configurable solverA top-level divide-and-conquer is performed
along with portfolios assigned to each sub-space
![Page 7: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/7.jpg)
Solver SetupAll experiments are run on the Hopper system at
the NERSC Center. Hopper is a Cray XE6 systemEach node has 24 cores with shared memory
Portfolios run within a single nodeSearch space can be divided across nodes
![Page 8: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/8.jpg)
Why is this a good idea?A hybrid approach is essential for efficient
computation on high-performance computers with a clear hierarchy of parallelismWithin a node – shared memory approach is
efficientAcross nodes – distributed memory approach is
efficientOur solver is highly configurable – it can emulate
full divide-and-conquer, full portfolio
![Page 9: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/9.jpg)
Scaling Plots
ManySAT and Plingeling scale poorly within a node
(Negative slope is better)
![Page 10: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/10.jpg)
Solver OperationSay we want to run a solver that divides the
search space into 8, with 12 workers per portfolio
¬x1¬,x2, ¬x3
Pick 3 variables to form the guiding path (say x1,x2,x3)
¬x1,x2, ¬x3 ¬x1, ¬x2,x3 ¬x1,x2,x3
x1, ¬x2, ¬x3 x1,x2, ¬x3 x1,¬x2,x3 x1,x2,x3
Initialize portfolios with parameter configurations ψi
ψ1 ψ2 ψ3 ψ4
ψ5 ψ6 ψ7 ψ8
![Page 11: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/11.jpg)
Idle workersSome portfolios may finish faster than othersSuch portfolios should help other running ones
by “stealing” some work
¬x1¬,x2, ¬x3
¬x1,x2, ¬x3 ¬x1, ¬x2,x3 ¬x1,x2,x3
x1, ¬x2, ¬x3 x1,x2, ¬x3 x1,¬x2,x3 x1,x2,x3
ψ1 ψ2 ψ3 ψ4
ψ5 ψ6 ψ7 ψ8x1,x2, ¬x3 x1,¬x2,x3 x1,x2,x3
ψ6 ψ7 ψ8
![Page 12: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/12.jpg)
Work StealingIdle workers together ask (say) the 5th portfolio
for more work
¬x1¬,x2, ¬x3
¬x1,x2, ¬x3 ¬x1, ¬x2,x3 ¬x1,x2,x3
x1, ¬x2, ¬x3 x1,x2, ¬x3 x1,¬x2,x3 x1,x2,x3
ψ1 ψ2 ψ3 ψ4
ψ5 ψ6 ψ7 ψ8x1,x2, ¬x3 x1,¬x2,x3 x1,x2,x3
ψ6 ψ7 ψ8
If the 5th portfolio agrees, it further divides its search space and delegates some work
x1, ¬x2, ¬x3
ψ5x1,x2, ¬x3x4, ¬x5
x1,¬x2,x3¬x4,x5
x1,x2,x3x4,x5
ψ6 ψ7 ψ8x1, ¬x2, ¬x3
¬x4, ¬x5
ψ5
![Page 13: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/13.jpg)
DetailsChoosing the guiding path
Randomly Internal variable ordering heuristics of the solver
(such as VSIDS)Use domain specific information
Configuring portfoliosCarefully crafted, depending on knowledge of
structure of the instanceLearn based on dynamic behavior of the instance
![Page 14: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/14.jpg)
ExperimentsWe run experiments on application instances
From previous SAT competitionsFrom model checking problems (self-generated)
Scaling experiments: ( 1 | 3 | 6 | 12 | 24 ) workers/portfolioUpto 768 total workers
Testing different ways to create guiding pathsTesting different portfolio configurations
![Page 15: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/15.jpg)
Results : Easy Instances*Our technique performs poorly on easy
instancesLarge scale parallelism has significant
overheads
*Results without work-stealing
![Page 16: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/16.jpg)
Results : Hard Instances*Mixed results. Depends on the guiding path
Random – 0.5 to 0.7x average scalingSolver heuristic based – 0.6 to 0.9x average
scaling
Example (Hard SAT instance; 12 workers/portfolio)Splitting on the right variables can do better - 0.6
to 1.9x average scalingTotal cores Time taken
384 (12 x 32) 1984.0
768 (12 x 64) 511.0
*Results without work-stealing
![Page 17: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/17.jpg)
Improvements : In Progress
Work-stealingGuiding paths
Use high-level information from problem domainFor example, non-deterministic inputs in model
checking, or backbone variablesPortfolio configurations
Currently crafted manuallyCan be tuned to the instance using machine
learning
![Page 18: Large-scale Hybrid Parallel SAT Solving](https://reader036.vdocument.in/reader036/viewer/2022062315/568161ec550346895dd2201b/html5/thumbnails/18.jpg)
Thank You!