• No results found

The CL-SDSAT Implementation

As a part of this work we have implemented the CL-SDSAT algorithm for the grid computing environment discussed in Ch. 3. The implemen-tation of the CL-SDSAT algorithmic framework limits the database size

Parallel Solving based on Algorithm Portfolios

Grid

Local computing

Solver1

Solver2 ... Solvern

1

Pool of Parallel-Learned Clauses Filtered Clauses

Learned clauses (if not solved) Filtered clauses

Figure 4.6. The CL-SDSAT Process

MaxDBSize to one million literals, using the Chooselenheuristic to choose the clauses once the limit is reached. The outgoing clauses are selected us-ing the same heuristic, and the size of the set is limited to 100 000 literals.

Unlike in the algorithmic framework of Fig. 4.3, the implementation does not wait for all the parallel running solvers to time out before submitting the new solvers to the freed resources. This decision was taken since the delays in the grid environment vary (see Fig. 3.2), and some solvers might therefore finish much earlier than the less lucky solvers. As a result, the related work flow could be described as the process in Fig. 4.6, where a clause database is maintained in the master process using heuristics and jobs are constructed using the database available at the time a resource becomes available.

The CL-SDSAT algorithm is based on MINISAT2.2.0. The solver is used in two ways; firstly as the clause-producing solver in the workers, and sec-ondly in the master process for handling the simplification, and removing subsumed and duplicate learned clauses. Figure 4.7 compares the run time of MINISAT2.2.0 based CL-SDSAT approach to MINISAT2.2.0 for the application category instances of SAT-Comp 2009. The times reported for CL-SDSAT include the grid delays, job run time was limited to approx-imately one hour, memory usage was limited to 2 gigabytes and at most 64 cores were used from the grid simultaneously. The work flow run time was limited to 6 hours. The times reported for MINISAT2.2.0 are

com-Parallel Solving based on Algorithm Portfolios

0 5000 10000 15000 20000

0 5000 10000 15000 20000

CL-SDSAT

MiniSat2.2.0

0.1 1 10 100 1000 10000

0.1 1 10 100 1000 10000

CL-SDSAT

MiniSat2.2.0

1000 10000

1000 10000

CL-SDSAT

MiniSat2.2.0

Figure 4.7. Comparison of the CL-SDSAT approach against MINISAT2.2.0. The boxes () represent unsatisfiable and the crosses (×) satisfiable instances. The right figure shows the data in logarithmic scale, whereas the left figure uses linear scale. The bottom figure is a zoom into the right figure.

puted in a 12 core AMD Opteron 2435 system. The full node was reserved for each run to prevent other processes causing memory bus congestion.

Time was limited to 6 hours and memory usage to 24 gigabytes.

Despite the high latency the CL-SDSAT approach seems to perform well in solving instances and manages to solve several instances that were not solved with MINISAT 2.2.0, as illustrated by the time outs on the borders of the graphs. The slowdown in easy instances is particularly visible in the right graph using logarithmic scale. As the difficulty of the instances increases, also the gain from the CL-SDSAT algorithm becomes clearly visible. Based on the results it would be particularly interesting to study the effect of adding to the clause database the frequently occurring clauses, and using more information, such as the Literals Blocks Distance defined in [Audemard and Simon 2009], for assessing the quality of the clauses. However, this is left to further work at this point.

5. Parallel Solving Based on Partitioning

Parallel SAT solving has in the past relied largely on methods where the search space is “forcibly” partitioned into non-overlapping searches. This approach, used for example in [Speckenmeyer 1989; Böhm and Specken-meyer 1996; Zhang et al. 1996], is natural when using traditional DPLL-style solvers where the search is organized as a tree.

The SDSAT and CL-SDSAT approaches described in the preceding chap-ter do not force the solvers to perform different searches on the formula, but instead rely on randomization in the heuristic to provide speed-up.

The idea in these portfolio approaches is that it is unlikely that two ran-domized solvers would be searching the solution in a similar fashion.

The differences between the partitioning and portfolio approaches have been actively studied [Bonacina 1999; Bonacina 2000; Grama and Kumar 1999; Bordeaux et al. 2009]. The most recent results in particular from SAT competitions suggest that the portfolio based approach performs bet-ter in practice [Hamadi et al. 2009b; Hamadi et al. 2009a; Biere 2010].

Recently also approaches which combine elements from both partitioning and portfolios have received some interest [Bonacina 2001; Segre et al.

2002; Hyvärinen et al. 2006; Dequen et al. 2009; Ohmura and Ueda 2009;

Gebser et al. 2011].

This chapter discusses several approaches to avoiding search overlap with stronger means than just relying on probability. The approaches are based on inserting additional constraints to a formula resulting in two or more derived formulas. The constraints, represented either as conjunc-tions of clauses or as partial truth assignments, are constructed so that solving sufficient number of the derived formulas allows determining the satisfiability of the original formula. The chapter presents several ap-proaches to organizing the partitioning based search, and analyzes the effects of the approaches to the expected time required to determine the

Parallel Solving Based on Partitioning

satisfiability of a formula.

The chapter combines this topic, covered in [PIII] and [PIV], under a sin-gle discussion. While the scope of [PIII] in particular is in both satisfiable and unsatisfiable formulas, the main emphasis here is to develop a uni-form notation for the unsatisfiable uni-formulas. Also other topics, covered in more detail in the publications, are considered more lightly here. In par-ticular, the discussion on the lookahead partitioning function in Sect. 5.5 is covered in much more detail in [PIV], and the experimental results for the studied partitioning approaches are given in [PIII].