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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Black, F., Scholes, M.: The pricing of options and corporate liabilities. J. Polit. Econ. 81, 637–654 (1973)
Burkardt, J.: Shallow water equations. http://people.sc.fsu.edu/~jburkardt/m_src/shallow_water_2d/. Accessed May 2015
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)
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
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)
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)
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)
Numrich, R.W., Reid, J.: Co-array fortran for parallel programming. In: ACM Sigplan Fortran Forum, vol. 17, pp. 1–31. ACM (1998)
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
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)
Sanderson, C.: Armadillo: C++ linear algebra library. http://arma.sourceforge.net/. Accessed May 2015
Sipelstein, J.M., Blelloch, G.E.: Collection-oriented languages. Proc. IEEE 79(4), 504–523 (1991)
Skovhede, K., Vinter, B.: Numcil: numeric operations in the common intermediate language. J. Next Gener. Inf. Technol. 4(1), 9–18 (2013)
Team, B.: Benchpress source code. https://github.com/bh107/benchpress. Accessed May 2015; used revision 349ce5c1a69bb723a76783f7720c6ff0874519af
Team, B.: Bohrium source code. https://github.com/bh107/bohrium. Accessed May 2015; used revision 6f27c1fb3ae46c9b2541ba6d15b44e4a02e2cb01
Veldhuizen, T., Cummings, J.: Armadillo: C++ linear algebra library. http://blitz.sourceforge.net/. Accessed May 2015
Xamarin: Mono: Cross platform, open source .net framework. http://www.mono-project.com/. Accessed May 2015
Xamarin : Mono.simd namespace: hardware accelerated simd-based primitives. http://api.xamarin.com/index.aspx?link=N3AMono.Simd. Accessed May 2015
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)