Skip to main content

On the Performance of Multidimensional Array Representations in Programming Languages Based on Virtual Execution Machines

  • Conference paper

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

Abstract

This paper evaluates the performance of virtual execution machines (VM) of the CLI and JVM standards for the common approaches to represent multidimensional arrays in high performance computing applications. In particular, it shows which representation is the best for each virtual machine implementation, showing that the choices may be surprisingly contradictory, even with respect to previous results of other works on performance evaluation of VMs.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   73.00
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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The Mono Project (2006), http://www.mono-project.com

  2. IBM Java Development Kit (May 2012)

    Google Scholar 

  3. IKVM.NET Home Page (May 2012)

    Google Scholar 

  4. JSci - A science API for Java (May 2012)

    Google Scholar 

  5. Microsoft .NET Framework (2012), http://www.microsoft.com/net

  6. OpenJDK (May 2012)

    Google Scholar 

  7. Oracle Java Development Kit (May 2012)

    Google Scholar 

  8. Amedro, B., Baude, F., Caromel, D., Delbe, C., Filali, I., Huet, F., Mathias, E., Smirnov, O.: An Efficient Framework for Running Applications on Clusters, Grids and Clouds, ch. 10, pp. 163–178. Springer (2010)

    Google Scholar 

  9. Amedro, B., Caromel, D., Huet, F., Bodnartchouk, V., Delbé, C., Taboada, G.: HPC in Java: Experiences in Implementing the NAS Parallel Benchmarks. In: Proceedings of the 10th WSEAS International Conference on Applied Informatics and Communications (AIC 2010) (August 2010)

    Google Scholar 

  10. Artigas, P.V., Gupta, M., Midkiff, S.P., Moreira, J.E.: Automatic Loop Transformations and Parallelization for Java. In: Proceedings of the 14th International Conference on Supercomputing (ICS 2000), pp. 1–10. ACM Press, New York (2000)

    Chapter  Google Scholar 

  11. Bailey, D.H., et al.: The NAS Parallel Benchmarks. International Journal of Supercomputing Applications 5(3), 63–73 (1991)

    Article  Google Scholar 

  12. Baitsch, M., Li, N., Hartmann, D.: A Toolkit for Efficient Numerical Applications in Java. Advances in Engineering Software 41(1), 75–83 (2010)

    Article  MATH  Google Scholar 

  13. Budimlic, Z., Kennedy, K.: JaMake: A Java Compiler Environment. In: Margenov, S., Waśniewski, J., Yalamov, P. (eds.) LSSC 2001. LNCS, vol. 2179, pp. 201–209. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  14. Bull, J.M., Smith, L.A., Ball, C., Pottage, L., Freeman, R.: Benchmarking Java against C and Fortran for scientific applications. Concurrency and Computation: Practice and Experience 15(35), 417–430 (2003)

    Article  MATH  Google Scholar 

  15. ECMA International. Common Language Infrastructure (CLI), Partitions I to VI. Technical Report 335, ECMA International (June 2006)

    Google Scholar 

  16. Frumkin, M.A., Schultz, M., Jin, H., Yan, J.: Performance and Scalability of the NAS Parallel Benchmarks in Java. In: 17th International Symposium on Parallel and Distributed Processing (IPDPS 2003), p. 139 (April 2003)

    Google Scholar 

  17. Grama, A., Gupta, A., Karypis, J., Kumar, V.: Introduction to Parallel Computing. Addison-Wesley (1976)

    Google Scholar 

  18. Gundersen, G., Steihaug, T.: Data structures in Java for matrix computations. Concurrency and Computation: Practice and Experience 16(8), 799–815 (2004)

    Article  Google Scholar 

  19. Hamilton, J.: Language Integration in the Common Language Runtime. SIGPLAN Notices 38(2), 19–28 (2003)

    Article  Google Scholar 

  20. Luján, M., Gurd, J.R., Freeman, T.L., Miguel, J.: Elimination of Java Array Bounds Checks in the Presence of Indirection. In: Proceedings of the 2002 Joint ACM-ISCOPE Conference on Java Grande (JGI 2002), pp. 76–85. ACM Press, New York (2002)

    Chapter  Google Scholar 

  21. Lusk, E., Yelick, K.: Languages for High-Productivity Computing - The DARPA HPCS Language Support. Parallel Processing Letters (1), 89–102 (2007)

    Google Scholar 

  22. Mathew, J.A., Coddington, P.D., Hawick, K.A.: Analysis and development of Java Grande benchmarks. In: Proceedings of the ACM 1999 Conference on Java Grande (JAVA 1999), pp. 72–80. ACM Press, New York (1999)

    Chapter  Google Scholar 

  23. Moreira, J.E., Midkiff, S.P., Gupta, M.: Supporting Multidimensional Arrays in Java. Concurrency and Computation: Practice and Experience 15(35), 317–340 (2003)

    Article  MATH  Google Scholar 

  24. Moreira, J.E., Midkiff, S.P., Gupta, M., Artigas, P.V., Wu, P., Almasi, G.: The NINJA project. Communications of the ACM 44(10), 102–109 (2001)

    Article  Google Scholar 

  25. Nguyen, T.V.N., Irigoin, F.: Efficient and Effective Array Bound Checking. ACM Trans. on Programming Languages and Systems 27(3), 527–570 (2005)

    Article  Google Scholar 

  26. Nikishkov, G.P., Nikishkov, Y.G., Savchenko, V.V.: Comparison of C and Java Performance in Finite Element Computations. Computers & Structures 81(24-25), 2401–2408 (2003)

    Article  Google Scholar 

  27. Philippsen, M., Boisvert, R.F., Getov, V., Pozo, R., Moreira, J.E., Gannon, D., Fox, G.: JavaGrande - High Performance Computing with Java. In: Sørevik, T., Manne, F., Moe, R., Gebremedhin, A.H. (eds.) PARA 2000. LNCS, vol. 1947, pp. 20–36. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  28. Post, D.E., Votta, L.G.: Computational Science Demands a New Paradigm. Physics Today 58(1), 35–41 (2005)

    Article  Google Scholar 

  29. Qian, F., Hendren, L., Verbrugge, C.: A Comprehensive Approach to Array Bounds Check Elimination for Java. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 325–342. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  30. Riley, C.J., Chatterjee, S., Biswas, R.: High-Performance Java Codes for Computational Fluid Dynamics. Concurrency and Computation: Practice and Experience 15(35), 395–415 (2003)

    Article  MATH  Google Scholar 

  31. Taboada, G.L., Ramos, S., Expósito, R.R., Tourino, J., Doallo, R.: Java in the High Performance Computing arena: Research, practice and experience. Science of Computer Programming 78(5), 425–444 (2013)

    Article  Google Scholar 

  32. Todorov, V.: Java and Computing for Robust Statistics. In: Developments in Robust Statistics, pp. 404–416. Physica-Verlag GmbH & Co. (2002)

    Google Scholar 

  33. van Reeuwijk, C., Kuijlman, F., Sips, H.J.: Spar: A Set of Extensions to Java for Scientific Computation. Concurrency and Computation: Practice and Experience 15(35), 277–297 (2003)

    Article  MATH  Google Scholar 

  34. VanderHeyden, W.B., Dendy, E.D., Padial Collins, N.T.: CartaBlanca A Pure-Java, Component-Based Systems Simulation Tool for Coupled Nonlinear Physics on Unstructured Grids. Concurrency and Computation: Practice and Experience 15(35), 431–458 (2003)

    Article  MATH  Google Scholar 

  35. Vogels, W.: Benchmarking the CLI for high performance computing. Software IEE Proceedings 150(5), 266–274 (2003)

    Article  Google Scholar 

  36. Würthinger, T., Wimmer, C., Mössenböck, H.: Array bounds check elimination for the Java HotSpot client compiler. In: Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java (PPPJ 2007), p. 125. ACM Press, New York (2007)

    Chapter  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

de Carvalho Junior, F.H., Rezende, C.A., de Carvalho Silva, J., Magalhães, F.J.L., Juaçaba-Neto, R.C. (2013). On the Performance of Multidimensional Array Representations in Programming Languages Based on Virtual Execution Machines. In: Du Bois, A.R., Trinder, P. (eds) Programming Languages. SBLP 2013. Lecture Notes in Computer Science, vol 8129. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40922-6_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40922-6_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40921-9

  • Online ISBN: 978-3-642-40922-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics