Skip to main content

Accelerating the General Simplex Procedure for Linear Real Arithmetic via GPUs

  • Conference paper
  • First Online:
Verified Software. Theories, Tools, and Experiments (VSTTE 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9971))

  • 590 Accesses

Abstract

This paper demonstrates the benefits of GPU parallelism for a simplex-based decision procedure for conjunctions of linear constraints over reals. This variant of the simplex method, called general simplex, decides whether the set of constraints is satisfiable, and is intended to be integrated into SMT solvers. We carried out comprehensive experiments over randomly generated instances for dense linear programming problems on a mid-range consumer GPU (AMD Radeon 390X) using floating point arithmetic. The GPU scheduled hundreds of thousands of concurrent thread workgroups to process tableaus representing up to 8k variables and 8k constraints. We achieved speedup up to 25x over a CPU-only implementation (quad-core AMD Kaveri 3.7 GHz) of the same procedure. We compared this to a multithreaded OpenMP implementation that also achieved up to 1.8x speedup on the same inputs. These results suggest that GPU processors may be further utilized in the context of SMT and software verification tools.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Many-core processors have orders of magnitude more processing elements than multi-core processors [1, 16].

  2. 2.

    http://yices.csl.sri.com/.

  3. 3.

    http://research.microsoft.com/en-us/um/redmond/projects/z3/.

  4. 4.

    As described in [10], arbitrary weak linear constraints of the form \(L \otimes R\), where \(\otimes \in \{\le , \ge , = \}\), can be translated to general form as follows for the ith constraint: (1) move all addends in R to the left-hand side to obtain \(L' \otimes b\), where b is a constant; (2) introduce a new variable \(s_i\) and add the constraints \(L' - s_i = 0\) and \(s_i \otimes b\). The variables s are called additional variables.

  5. 5.

    Note that we are using \(x_i\) here to refer to any variable, whether it be a decision or an additional variable.

References

  1. Asanovic, K., Bodik, R., Catanzaro, B.C., Gebis, J.J., Husbands, P., Keutzer, K., Patterson, D.A., Plishker, W.L., Shalf, J., Williams, S.W., Yelick, K.A.: The landscape of parallel computing research: a view from Berkeley. Technical report UCB/EECS-2006-183, Berkeley EECS, December 2006

    Google Scholar 

  2. Beckers, S., De Samblanx, G., De Smedt, F., Goedeme, T., Struyf, L., Vennekens, J.: Parallel hybrid SAT solving using OpenCL (2012)

    Google Scholar 

  3. Borkar, S., Chien, A.A.: The future of microprocessors. CACM 54(5), 67–77 (2011). http://doi.acm.org/10.1145/1941487.1941507

    Article  Google Scholar 

  4. Dantzig, G.B.: Linear Programming and Ext. Princeton University Press, Princeton (1963)

    Book  MATH  Google Scholar 

  5. Deleau, H., Jaillet, C., Krajecki, M.: GPU4SAT: solving the SAT problem on GPU. In: PARA Workshop on Scientific & Parallel Computing (2008)

    Google Scholar 

  6. Dutertre, B., Moura, L.: A fast linear-arithmetic solver for DPLL(T). In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 81–94. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  7. Faure, G., Nieuwenhuis, R., Oliveras, A., Rodríguez-Carbonell, E.: SAT modulo the theory of linear arithmetic: exact, inexact and commercial solvers. In: Kleine Büning, H., Zhao, X. (eds.) SAT 2008. LNCS, vol. 4996, pp. 77–90. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  8. Fujii, H., Fujimoto, N.: GPU Acceleration of BCP Procedure for SAT Algorithms (2012)

    Google Scholar 

  9. Gulati, K., Khatri, S.P.: Boolean satisfiability on a graphics processor, pp. 123–126 (2010)

    Google Scholar 

  10. Kroening, D., Strichman, O.: Decision Procedures: An Algorithmic Point of View. Springer (2008)

    Google Scholar 

  11. Lalami, M.E., Boyer, V., El-Baz, D.: Efficient implementation of the simplex method on a CPU-GPU system. In: IEEE International Symposium on Parallel and Distributed Processing Workshops and Ph.D. Forum, pp. 1999–2006 (2011)

    Google Scholar 

  12. Lalami, M.E., El-Baz, D., Boyer, V.: Multi GPU implementation of the simplex algorithm. In: 2011 IEEE International Conference on High Performance Computing and Communications, Banff, Canada, pp. 179–186, September 2011

    Google Scholar 

  13. Meyer, Q., Schonfeld, F., Stamminger, M., Wanka, R.: 3-SAT on CUDA: towards a massively parallel SAT solver. In: High Performance Computing and Simulation (HPCS), pp. 306–313. IEEE (2010)

    Google Scholar 

  14. Mittal, S., Vetter, J.: A Survey of CPU-GPU Heterogeneous Computing Techniques. ACM Comput. Surv. 47, 1–35 (2015)

    Article  Google Scholar 

  15. Monniaux, D.: On using floating-point computations to help an exact linear arithmetic decision procedure. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 570–583. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  16. Munshi, A., Benedict, R.G., Mattson, T.G., Fung, J., Ginsburg, D.: OpenCL Programming Guide. Addison-Wesley, Reading (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Steven T. Stewart .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this paper

Cite this paper

Stewart, S.T., Rayside, D., Ganesh, V., Czarnecki, K. (2016). Accelerating the General Simplex Procedure for Linear Real Arithmetic via GPUs. In: Blazy, S., Chechik, M. (eds) Verified Software. Theories, Tools, and Experiments. VSTTE 2016. Lecture Notes in Computer Science(), vol 9971. Springer, Cham. https://doi.org/10.1007/978-3-319-48869-1_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-48869-1_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-48868-4

  • Online ISBN: 978-3-319-48869-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics