Skip to main content

VLI – A Library for High Precision Integer and Polynomial Arithmetic

  • Conference paper
Book cover Supercomputing (ISC 2013)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7905))

Included in the following conference series:

Abstract

We present a high-performance C++ library for high but fixed precision (128 to 512 bit) integer arithmetic and symbolic polynomial computations. While the large integer and polynomial computation parts of the library can be used independently optimized kernels for symbolic polynomials with large integer coefficients are provided. The kernels were manually optimized in assembly language for the x86-64 and power64 architectures. Our main target application is high-temperature series expansions which requires inner products of large vectors of polynomials with large integer coefficients. For this purpose we implemented a tunable hybrid CPU/GPU inner product function using OpenMP and NVIDIA CUDA with inline PTX assembly. This way we make optimal use of today’s and upcoming hybrid supercomputers and attain 49% of the peak performance of the current NVIDIA Kepler GPU. Compared to a pure CPU solution using the GNU Multiple Precision Arithmetic Library (GMP) we gain a speedup of 13x for a pure CPU inner product and 38x using a GPU accelerator.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Rivest, R.L., Shamir, A., Adleman, L.: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Commun. ACM 21(2), 120–126 (1978)

    Article  MathSciNet  Google Scholar 

  2. Oitmaa, J., Hamer, C., Zheng, W.: Series Expansion Methods for Strongly Interacting Lattice Models. Cambridge University Press (2006)

    Google Scholar 

  3. Granlund, T., The GMP development team: GNU MP: The GNU Multiple Precision Arithmetic Library. 5.1.1 edn. (2012), http://gmplib.org/

  4. Shoup, V., The NTL development team: NTL: A Library for Doing Number Theory, http://www.shoup.net/ntl/

  5. Emeliyanenko, P.: Efficient Multiplication of Polynomials on Graphics Hardware. In: Dou, Y., Gruber, R., Joller, J.M. (eds.) APPT 2009. LNCS, vol. 5737, pp. 134–149. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  6. Govindaraju, N.K., Lloyd, B., Dotsenko, Y., Smith, B., Manferdelli, J.: High Performance Discrete Fourier Transforms on Graphics Processors. In: Proceedings of the 2008 ACM/IEEE Conference on Supercomputing, SC 2008, pp. 2:1–2:12. IEEE Press, Piscataway (2008)

    Google Scholar 

  7. Maza, M.M., Pan, W.: Fast Polynomial Multiplication on a GPU. Journal of Physics: Conference Series 256(1), 012009 (2010)

    Google Scholar 

  8. Toom, A.J.: The Complexity of a Scheme of Functional Elements Simulating the Multiplication of Integers. Soviet Mathematics 3, 714–716 (1963)

    Google Scholar 

  9. Schönhage, A., Strassen, V.: Schnelle Multiplikation grosser Zahlen. Computing 7, 281–292 (1971)

    Article  MathSciNet  Google Scholar 

  10. Karatsuba, A., Ofman, Y.: Multiplication of Multidigit Numbers on Automata. Soviet Physics - Doklady 7, 595–596 (1963)

    Google Scholar 

  11. Hyde, R.: The Art of Assembly Language. No Starch Press (2003)

    Google Scholar 

  12. NVIDIA Corporation: CUDA C Programming Guide v5.0 (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ewart, T., Hehn, A., Troyer, M. (2013). VLI – A Library for High Precision Integer and Polynomial Arithmetic. In: Kunkel, J.M., Ludwig, T., Meuer, H.W. (eds) Supercomputing. ISC 2013. Lecture Notes in Computer Science, vol 7905. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38750-0_20

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-38750-0_20

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-38749-4

  • Online ISBN: 978-3-642-38750-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics