Asynchronous multi-core incremental SAT solving

  • Authors:
  • Siert Wieringa;Keijo Heljanko

  • Affiliations:
  • School of Science, Department of Information and Computer Science, Aalto University, Aalto, Finland;School of Science, Department of Information and Computer Science, Aalto University, Aalto, Finland

  • Venue:
  • TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
  • Year:
  • 2013
  • Concurrent clause strengthening

    SAT'13 Proceedings of the 16th international conference on Theory and Applications of Satisfiability Testing

  • Parallel MUS extraction

    SAT'13 Proceedings of the 16th international conference on Theory and Applications of Satisfiability Testing

Quantified Score

Hi-index 0.00

Visualization

Abstract

Solvers for propositional logic formulas, so called SAT solvers, are used in many practical applications. As multi-core and multi-processor hardware has become widely available, parallelizations of such solvers are actively researched. Such research typically ignores the incremental problem specification feature that modern SAT solvers possess. This feature is, however, crucial for many of the real-life applications of SAT solvers. Such applications include formal verification, equivalence checking, and typical artificial intelligence tasks such as scheduling, planning and reasoning. We have developed a multi-core SAT solver called Tarmo, which provides an interface that is compatible with conventional incremental solvers. It enables substantial performance improvements for many applications, without requiring code modifications. We present the asynchronous interface, a natural extension to the conventional solver interface that allows the construction of efficient application specific parallelizations. Through the asynchronous interface multiple problems can be given to the solver simultaneously. This enables conceptually simple but efficient parallelization of the solving process. Moreover, an asynchronous solver is easier to run in parallel with other independent tasks, simplifying the construction of so called coarse grained parallelizations. We provide an extensive experimental evaluation to illustrate the performance of the proposed techniques.