Skip to main content
Log in

Parallelizing simplex within SMT solvers

  • Published:
Artificial Intelligence Review Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. 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.

  2. http://www.inf.usi.ch/09-urop-11-sharygina-151196.pdf.

  3. 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.

  4. The bounds data structure is most efficiently implemented as a hash map that assigns a pair of bounds (lower and upper) to each unknown.

  5. http://www.matf.bg.ac.rs/~milan/argosmt-5.21/.

  6. http://www.gmplib.org.

  7. http://www.threadingbuildingblocks.org.

  8. http://www.matf.bg.ac.rs/~milan/argosmt-5.21/.

  9. http://mathsat.fbk.eu/.

  10. http://cvc4.cs.nyu.edu/web/.

  11. http://www.smt-lib.org/.

  12. The speedup is defined as the ratio of the times consumed by the sequential and parallel executions.

  13. 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.

  14. 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

    Article  MathSciNet  MATH  Google Scholar 

  • Davis M, Logemann G, Loveland D (1962) A machine program for theorem-proving. Commun ACM 5(7):394–397

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    MathSciNet  MATH  Google Scholar 

  • Hall J (2010) Towards a practical parallelisation of the simplex method. CMS 7(2):139–170

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Milan Banković.

Ethics declarations

Conflict of interest

The author declares that he has no conflict of interest.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10462-016-9495-5

Keywords

Navigation