Skip to main content

NumCIL and Bohrium: High Productivity and High Performance

  • Conference paper
  • First Online:
Parallel Processing and Applied Mathematics

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

  • 1177 Accesses

Abstract

In this paper, we explore the mapping of the NumCIL C# vector library where operations are offloaded to the Bohrium runtime system and evaluate the performance gains. By using a feature-rich language, such as C#, we argue that productivity can be increased. The use of the Bohrium runtime system allows all vector operations written in C# to be executed efficiently on multi-core systems.

We evaluate the presented design through a setup that targets a 32 core machine. The evaluation includes well-known benchmark applications, such as Black Sholes, 5-point stencil, Shallow Water, and N-body.

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

References

  1. Black, F., Scholes, M.: The pricing of options and corporate liabilities. J. Polit. Econ. 81, 637–654 (1973)

    Article  MATH  Google Scholar 

  2. Burkardt, J.: Shallow water equations. http://people.sc.fsu.edu/~jburkardt/m_src/shallow_water_2d/. Accessed May 2015

  3. Chamberlain, B., Vetter, J.S.: An introduction to chapel: cray cascade high productivity language. In: AHPCRC DARPA Parallel Global Address Space (PGAS) Programming Models Conference, Minneapolis (2005)

    Google Scholar 

  4. Frei, K.: RyuJIT CTP3: How to use SIMD. http://blogs.msdn.com/b/clrcodegeneration/archive/2014/04/03/ryujit-ctp3-how-to-use-simd.aspx. Accessed May 2015

  5. Ichbiah, J.D., Krieg-Brueckner, B., Wichmann, B.A., Barnes, J.G., Roubine, O., Heliard, J.C.: Rationale for the design of the ada programming language. ACM Sigplan Not. 14(6b), 1–261 (1979)

    Article  Google Scholar 

  6. Lund, S.A., Skovhede, K., Kristensen, M.R.B., Vinter, B.: Doubling the performance of Python/NumPy with less than 100 SLOC. In: IEEE International Conference on Performance, Computing and Communications (2013)

    Google Scholar 

  7. Newburn, C.J., So, B., Liu, Z., McCool, M., Ghuloum, A., Toit, S.D., Wang, Z.G., Du, Z.H., Chen, Y., Wu, G., et al.: Intel’s array building blocks: a retargetable, dynamic compiler and embedded language. In: 2011 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pp. 224–235. IEEE (2011)

    Google Scholar 

  8. Numrich, R.W., Reid, J.: Co-array fortran for parallel programming. In: ACM Sigplan Fortran Forum, vol. 17, pp. 1–31. ACM (1998)

    Google Scholar 

  9. Oliphant, T.E.: Python for scientific computing. Comput. Sci. Eng. 9(3), 10–20 (2007). http://scitation.aip.org/content/aip/journal/cise/9/3/10.1109/MCSE.2007.58

    Article  Google Scholar 

  10. Kristensen, M.R.B., Lund, S.A.F., Blum, T., Skovhede, K., Vinter, B.: Bohrium: a virtual machine approach to portable parallelism. In: 2014 IEEE 28th International Parallel and Distributed Processing Symposium Workshops & Ph.D. Forum (IPDPSW). IEEE (2014)

    Google Scholar 

  11. Sanderson, C.: Armadillo: C++ linear algebra library. http://arma.sourceforge.net/. Accessed May 2015

  12. Sipelstein, J.M., Blelloch, G.E.: Collection-oriented languages. Proc. IEEE 79(4), 504–523 (1991)

    Article  Google Scholar 

  13. Skovhede, K., Vinter, B.: Numcil: numeric operations in the common intermediate language. J. Next Gener. Inf. Technol. 4(1), 9–18 (2013)

    Article  Google Scholar 

  14. Team, B.: Benchpress source code. https://github.com/bh107/benchpress. Accessed May 2015; used revision 349ce5c1a69bb723a76783f7720c6ff0874519af

  15. Team, B.: Bohrium source code. https://github.com/bh107/bohrium. Accessed May 2015; used revision 6f27c1fb3ae46c9b2541ba6d15b44e4a02e2cb01

  16. Veldhuizen, T., Cummings, J.: Armadillo: C++ linear algebra library. http://blitz.sourceforge.net/. Accessed May 2015

  17. Xamarin: Mono: Cross platform, open source .net framework. http://www.mono-project.com/. Accessed May 2015

  18. Xamarin : Mono.simd namespace: hardware accelerated simd-based primitives. http://api.xamarin.com/index.aspx?link=N3AMono.Simd. Accessed May 2015

Download references

Acknowledgment

This research was supported by grant number 131-2014-5 from Innovation Fund Denmark. This research has been partially supported by the Danish Strategic Research Council, Program Committee for Strategic Growth Technologies, for the research center ‘HIPERFIT: Functional High Performance Computing for Financial Information Technology’ (hiperfit.dk) under contract number 10-092299.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Kenneth Skovhede .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Skovhede, K., Lund, S.A.F. (2016). NumCIL and Bohrium: High Productivity and High Performance. In: Wyrzykowski, R., Deelman, E., Dongarra, J., Karczewski, K., Kitowski, J., Wiatr, K. (eds) Parallel Processing and Applied Mathematics. Lecture Notes in Computer Science(), vol 9574. Springer, Cham. https://doi.org/10.1007/978-3-319-32152-3_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-32152-3_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-32151-6

  • Online ISBN: 978-3-319-32152-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics