1 / 1

REU 2007-ParSat: A Parallel SAT Solver Christopher Earl, Mentor: Dr. Hao Zheng

REU 2007-ParSat: A Parallel SAT Solver Christopher Earl, Mentor: Dr. Hao Zheng. Introduction.

Download Presentation

REU 2007-ParSat: A Parallel SAT Solver Christopher Earl, Mentor: Dr. Hao Zheng

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. REU 2007-ParSat: A Parallel SAT Solver Christopher Earl, Mentor: Dr. Hao Zheng Introduction The Boolean Satisfiability Problem (SAT) was the first problem to be proven NP-Complete over thirty-five years ago by Cooke. Since then not only has it been widely studied without success to develop a polynomial time algorithm, but there have been hundreds of problems found that can be reduced to SAT, ranging from optimizing microchip design to problems in graph theory such as the Traveling Salesman Problem. Because of the broad range of applications of SAT to both theory and practical applications, it cannot be ignored. While in general SAT is intractable, many instances can be solved very quickly. The Satisfiability Problem is a decision problem wherein given a Boolean formula, determine if it is satisfiable or not. To be satisfiable, there must be a way to set some or all the variables in the Boolean formula such that the entire formula simplifies to true. Over the years, there have been many programs designed to solve instances of SAT sequentially and in recent years in parallel as well. Most programs are based upon the DPLL algorithm, which searches through the decision tree and backtracks where possible. Programs designed to work in parallel have ranged from new designs that embrace parallelism throughout the program to those that use sequential programs as “blackboxes” and split the given instance into partitions. In this project ParSat, a parallel solver using pthreads and based on the sequential program MiniSat, was developed, implemented, and tested. MiniSat currently is one of the fastest SAT solvers available, having received first place in both the International SAT Competition 2005 and SAT-Race 2006 and third place in the International SAT Competition 2007. Methodology and Implementation In ParSat depending on the options set, reduction based upon the pure literal rule can be done immediately after reading in all the clauses to potentially remove some clauses and simplify others. The pure literal rule is the realization that any variable that appears in the clause database in either its positive or its negative form can be set true or false respectively to satisfy all the clauses in which that variable appears. Most current solvers do not reduce based on the pure literal rule because of the overhead costs and the fact that there may be reduction possible on a given instance. ParSat then solves a given instance in one of several ways based upon the options set. It can run MiniSat in its original form, or it can sequentially or in parallel run subdivisions of the given problem. ParSat subdivides the given instance of SAT into 2k partitions, where k is a given number of variables. Each partition is based upon one possible setting of the chosen k variables. Currently the only method of choosing variables is random selection with equal probability for all variables that appear in the formula. Whether run sequentially or in parallel, ParSat stops running subdivisions once one subdivision finds that the given clause database is satisfiable. Because of the way ParSat was implemented, changing the “blackbox” MiniSat to another sequential solver is a rather straightforward process that allows for new faster sequential solvers to be quickly made into a parallel version. Results and Conclusions So far testing has been limited to around 50 benchmarks from the test suites of SAT-Race 2006. The times in the tables above are recorded in seconds. The time limit for all tests was set to 1800 seconds (30 minutes). MiniSat was run with all default options. SeqSat refers to ParSat run in sequential mode. Both SeqSat and ParSat were run partitioned on one variable and reducing based upon the pure literal rule. In general based upon these tests, the overhead associated with ParSat’s pure literal rule reduction and thread management slow down ParSat to keep it roughly on par with MiniSat but considerable slow down SeqSat. The instances velev-pipe-uns-1.1-07.cnf and simon-mixed-s02bis-05.cnf in Test Suite 1 are a good examples of the savings that ParSat can have over MiniSat, but there are many examples of other instances such as grieu-vmpc-s05-05s.cnf and manol-pipe-g10ni.cnf where MiniSat outperforms ParSat by a considerable margin. From the testing do so far, ParSat clearly shows potential, especially on satisfiable instances because ParSat checks multiple parts of the decision tree at once and so has more opportunity to find solutions. SeqSat as expected does lags behind MiniSat because it shares most of the same overhead cost with ParSat without having its advantage of running multiple threads at once. Department of Computer Science & Engineering

More Related