Abstract
The usual approach in parallelizing SAT and SMT solvers is either to explore different parts of the search space in parallel (divide-and-conquer approach) or to run multiple instances of the same solver with suitably altered parameters in parallel, possibly exchanging some information during the solving process (parallel portfolio approach). Quite a different approach is to parallelize the execution of time-consuming algorithms that check for satisfiability and propagations during the search space exploration. Since most of the execution time is spent in these procedures, their efficient parallelization might be a promising research direction. In this paper we present our experience in parallelizing the simplex algorithm which is typically used in the SMT context to check the satisfiability of linear arithmetic constraints. We provide a detailed description of this approach and present experimental results that evaluate the potential of the approach compared to the parallel portfolio approach. We also consider the combination of the two approaches.
Similar content being viewed by others
Notes
For efficiency, most modern SMT solvers use multiprecision arithmetic only when needed, i.e. the built-in hardware arithmetic is used until an overflow is detected.
In practice, the set of possible relations is more general, that is \(\bowtie \in \{\le , \ge , <, >, =, \ne \}\). However, the symbols \(\ne \) and \(=\) can be easily eliminated in the preprocessing stage (\(x = y\) is replaced by \(x \le y \wedge x \ge y\) and \(x \ne y\) is replaced by \(x < y \vee x > y\)). The only non trivial part is the elimination of strict inequalities. This is done by considering the vector space \({\mathbb {Q}}_\delta \) of pairs of rationals instead of \({\mathbb {Q}}\). See Dutertre and Moura (2006) for details.
The bounds data structure is most efficiently implemented as a hash map that assigns a pair of bounds (lower and upper) to each unknown.
The speedup is defined as the ratio of the times consumed by the sequential and parallel executions.
Interestingly, based on the results we obtained in the experiments, tableaux in QF_RDL instances are, actually, not sparser on average than tableaux in QF_LRA instances.
The factor 10 is arbitrarily chosen, i.e. we did not measure exactly how many times the multiprecision arithmetic is slower than the hardware arithmetic. We have also tried to use values other than 10, but the conclusions were mostly the same.
References
Amdahl GM (1967) Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the April 18–20, 1967, spring joint computer conference. ACM, pp 483–485
Barrett C, Sebastiani R, Seshia SA, Tinelli C (2009) Satisfiability modulo theories. In: Handbook of satisfiability, chapter 26. IOS Press, pp 825–885
Barrett C, Stump A, Tinelli C (2010) The SMT-LIB standard: version 2.0. http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.0-r12.09.09.pdf
Barrett C, Conway CL, Deters M, Hadarean L, Jovanović D, King T, Reynolds A, Tinelli C (2011) Cvc4. In: Computer aided verification. Springer, pp 171–177
Biere A (2013) Lingeling, plingeling and treengeling entering the SAT competition 2013. In: Proceedings of SAT competition 2013. University of Helsinki, pp 51–52
Bruttomesso R, Pek E, Sharygina N, Tsitovich A (2010) The OpenSMT solver. In: TACAS, volume 6015 of lecture notes in computer science. Springer, pp 150–153
Cimatti A, Griggio A, Schaafsma B, Sebastiani R (2013) The MathSAT5 SMT Solver. In: Piterman N, Smolka S (eds) Proceedings of TACAS, volume 7795 of LNCS. Springer
Dantzig GB, Orden A, Wolfe P et al (1955) The generalized simplex method for minimizing a linear form under linear inequality restraints. Pac J Math 5(2):183–195
Davis M, Logemann G, Loveland D (1962) A machine program for theorem-proving. Commun ACM 5(7):394–397
de Moura, L. and Bjorner, N. (2008). Z3: an efficient SMT solver. In: TACAS, volume 4963 of lecture notes in computer science. Springer, pp 337–340
Dillig I, Dillig T, Aiken A (2009) Cuts from proofs: a complete and practical technique for solving linear inequalities over integers. In: Computer aided verification. Springer, pp 233–247
Dutertre B, de Moura L (2006) Integrating simplex with DPLL(T). Technical report, CSL, SRI International
Ganzinger H, Hagen G, Nieuwenhuis R, Oliveras A, Tinelli C (2004) DPLL(T): Fast decision procedures. In: CAV, volume 3114 of lecture notes in computer science. Springer, pp 175–188
Griggio A (2009) An effective SMT engine for formal verification. Ph.D. thesis, University of Trento
Griggio A (2012) A practical approach to satisfiability modulo linear integer arithmetic. J Satisf Boolean Model Comput 8:1–27
Hall J (2010) Towards a practical parallelisation of the simplex method. CMS 7(2):139–170
Hamadi Y, Jabbour S, Sais L (2009) ManySAT: a parallel SAT solver. J Satisf Boolean Model Comput 6:245–262
Hölldobler S, Manthey N, Nguyen VH, Steinke P, Stecklina J (2011) Modern parallel SAT-solvers. Technical report, TR 2011-6, Knowledge Representation and Reasoning Group, TU Dresden, Germany
Jovanović D, De Moura L (2011) Cutting to the chase solving linear integer arithmetic. In: Automated seduction–CADE-23. Springer, pp 338–353
Jurkowiak B, Li CM, Utard G (2005) A parallelization scheme based on work stealing for a class of SAT solvers. J Autom Reason 34(1):73–101
Kalinnik N, Abraham E, Schubert T, Wimmer R, Becker B (2010) Exploiting different strategies for the parallelization of an SMT solver. In: MBMV. Fraunhofer Verlag, pp 97–106
King T (2014) Effective algorithms for the satisfiability of quantifier-free formulas over linear real and integer arithmetic. Ph.D. thesis, New York University
Manthey N (2011) Parallel SAT solving-using more cores. In: Pragmatics of SAT workshop
Marques-Silva J, Lynce I, Malik S (2009) Conflict-driven clause learning SAT solvers. In: Handbook of satisfiability, chapter 4. IOS Press, pp 131–155
Moskewicz M W, Madigan CF, Zhao Y, Zhang L, Malik S (2001) Chaff: engineering an efficient SAT solver. In: Annual ACM IEEE design automation conference. ACM, pp 530–535
Nieuwenhuis R, Oliveras A (2005) DPLL (T) with exhaustive theory propagation and its application to difference logic. In: Computer aided verification. Springer, pp 321–334
Sheini HM, Sakallah KA (2005) A scalable method for solving satisfiability of integer linear arithmetic logic. In: Theory and applications of satisfiability testing. Springer, pp 241–256
Singer D (2006) Parallel combinatorial optimization. In: Talbi E-G (ed) Parallel resolution of the satisfiability problem: a survey. Wiley, London, pp 123–147
Sinz C, Blochinger W, Kchlin W (2001) PaSAT—Parallel SAT-checking with lemma exchange: implementation and applications. Electr Notes Discrete Math 9:205–216
Wintersteiger CM, Hamadi Y, de Moura L (2009) A concurrent portfolio approach to SMT solving. In: CAV, volume 5643 of lecture notes in computer science. Springer, pp 715–720
Zhang H, Bonacina MP, Hsiang J (1996) PSATO: a distributed propositional prover and its application to quasigroup problems. J symb Comput 21:543–560
Acknowledgments
This work was partially supported by the Serbian Ministry of Science Grant 174021 and by the SNF Grant SCOPES IZ73Z0_127979/1.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The author declares that he has no conflict of interest.
Rights and permissions
About this article
Cite this article
Banković, M. Parallelizing simplex within SMT solvers. Artif Intell Rev 48, 83–112 (2017). https://doi.org/10.1007/s10462-016-9495-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10462-016-9495-5