Artificial Intelligence Review

, Volume 48, Issue 1, pp 83–112 | Cite as

Parallelizing simplex within SMT solvers

  • Milan Banković


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.


SMT solving Simplex parallelization within SMT Parallel SMT portfolio 



This work was partially supported by the Serbian Ministry of Science Grant 174021 and by the SNF Grant SCOPES IZ73Z0_127979/1.

Compliance with ethical standards

Conflict of interest

The author declares that he has no conflict of interest.


  1. 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–485Google Scholar
  2. Barrett C, Sebastiani R, Seshia SA, Tinelli C (2009) Satisfiability modulo theories. In: Handbook of satisfiability, chapter 26. IOS Press, pp 825–885Google Scholar
  3. Barrett C, Stump A, Tinelli C (2010) The SMT-LIB standard: version 2.0.
  4. 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–177Google Scholar
  5. Biere A (2013) Lingeling, plingeling and treengeling entering the SAT competition 2013. In: Proceedings of SAT competition 2013. University of Helsinki, pp 51–52Google Scholar
  6. 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–153Google Scholar
  7. 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. SpringerGoogle Scholar
  8. 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–195MathSciNetCrossRefzbMATHGoogle Scholar
  9. Davis M, Logemann G, Loveland D (1962) A machine program for theorem-proving. Commun ACM 5(7):394–397MathSciNetCrossRefzbMATHGoogle Scholar
  10. 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–340Google Scholar
  11. 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–247Google Scholar
  12. Dutertre B, de Moura L (2006) Integrating simplex with DPLL(T). Technical report, CSL, SRI InternationalGoogle Scholar
  13. 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–188Google Scholar
  14. Griggio A (2009) An effective SMT engine for formal verification. Ph.D. thesis, University of TrentoGoogle Scholar
  15. Griggio A (2012) A practical approach to satisfiability modulo linear integer arithmetic. J Satisf Boolean Model Comput 8:1–27MathSciNetzbMATHGoogle Scholar
  16. Hall J (2010) Towards a practical parallelisation of the simplex method. CMS 7(2):139–170MathSciNetCrossRefzbMATHGoogle Scholar
  17. Hamadi Y, Jabbour S, Sais L (2009) ManySAT: a parallel SAT solver. J Satisf Boolean Model Comput 6:245–262Google Scholar
  18. 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, GermanyGoogle Scholar
  19. Jovanović D, De Moura L (2011) Cutting to the chase solving linear integer arithmetic. In: Automated seduction–CADE-23. Springer, pp 338–353Google Scholar
  20. 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–101MathSciNetCrossRefzbMATHGoogle Scholar
  21. 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–106Google Scholar
  22. King T (2014) Effective algorithms for the satisfiability of quantifier-free formulas over linear real and integer arithmetic. Ph.D. thesis, New York UniversityGoogle Scholar
  23. Manthey N (2011) Parallel SAT solving-using more cores. In: Pragmatics of SAT workshopGoogle Scholar
  24. Marques-Silva J, Lynce I, Malik S (2009) Conflict-driven clause learning SAT solvers. In: Handbook of satisfiability, chapter 4. IOS Press, pp 131–155Google Scholar
  25. 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–535Google Scholar
  26. Nieuwenhuis R, Oliveras A (2005) DPLL (T) with exhaustive theory propagation and its application to difference logic. In: Computer aided verification. Springer, pp 321–334Google Scholar
  27. 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–256Google Scholar
  28. Singer D (2006) Parallel combinatorial optimization. In: Talbi E-G (ed) Parallel resolution of the satisfiability problem: a survey. Wiley, London, pp 123–147Google Scholar
  29. Sinz C, Blochinger W, Kchlin W (2001) PaSAT—Parallel SAT-checking with lemma exchange: implementation and applications. Electr Notes Discrete Math 9:205–216CrossRefzbMATHGoogle Scholar
  30. 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–720Google Scholar
  31. Zhang H, Bonacina MP, Hsiang J (1996) PSATO: a distributed propositional prover and its application to quasigroup problems. J symb Comput 21:543–560MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer Science+Business Media Dordrecht 2016

Authors and Affiliations

  1. 1.Faculty of MathematicsUniversity of BelgradeBelgradeSerbia

Personalised recommendations