Advertisement

Springer Nature is making Coronavirus research free. View research | View latest news | Sign up for updates

Runtime support for scalable programming in Java

  • 106 Accesses

  • 2 Citations

Abstract

The paper research is concerned with enabling parallel, high-performance computation—in particular development of scientific software in the network-aware programming language, Java. Traditionally, this kind of computing was done in Fortran. Arguably, Fortran is becoming a marginalized language, with limited economic incentive for vendors to produce modern development environments, optimizing compilers for new hardware, or other kinds of associated software expected of by today’s programmers. Hence, Java looks like a very promising alternative for the future.

The paper will discuss in detail a particular environment called HPJava. HPJava is the environment for parallel programming—especially data-parallel scientific programming—in Java. Our HPJava is based around a small set of language extensions designed to support parallel computation with distributed arrays, plus a set of communication libraries. A high-level communication API, Adlib, is developed as an application level communication library suitable for our HPJava. This communication library supports collective operations on distributed arrays. We include Java Object as one of the Adlib communication data types. So we fully support communication of intrinsic Java types, including primitive types, and Java object types.

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

References

  1. 1.

    ACM (1998) Workshop on Java for high-performance network computing. Concurr Pract Exp 10(11-13):821–824

  2. 2.

    Agrawal A, Sussman A, Saltz J (1995) An integrated runtime and compiletime approach for parallelizing structured and block structured applications. IEEE Trans Parallel Distrib Syst 6

  3. 3.

    Briggs WL, Van Henson E, McCormick SF (2000) A multigrid tutorial. The Society for Industrial and Applied Mathematics (SIAM)

  4. 4.

    Das R, Uysal MH, Salz JH, Hwang YS (1994) Communication optimizations for irregular scientific computations on distributed memory architectures. J Parallel Distrib Comput 22(3):462–479

  5. 5.

    DeSouza J, Kale LV (2003) Jade: A parallel message-driven java. In: Proceedings of the 2003 workshop on Java in computational science, Melburne, Australia. Available from http://charm.cs.uiuc.edu/papers/ParJavaWJCS03.shtml

  6. 6.

    Java for computational science and engineering—simulation and modelling (1997) Concurr Pract Exp 9(6)

  7. 7.

    Java for computational science and engineering—simulation and modelling II (1997) Concurr Pract Exp 9(11):1001–1002

  8. 8.

    Java Grande Forum home page. http://www.javagrande.org

  9. 9.

    Lee HK (2003) Towards efficient compilation of the HPJava language for high performance computing. PhD thesis, Florida State University

  10. 10.

    Moreira JE, Midkiff SP, Gupta M, Lawrence R (1999) High performance computing with the array package for Java: a case study using data mining. In: Supercomputing 99, November 1999

  11. 11.

    Moreira JE, Midkiff SP, Gupta M (2001) A comparision of three approaches to language, compiler and library support for multidimensional arrays in Java. In: ACM 2001 Java grande/ISCOPE conference. ACM Press

  12. 12.

    Timber Compiler Home Page. http://pds.twi.tudelft.nl/timber

  13. 13.

    Yelick K, Semenzato L, Pike G, Miyamoto C, Liblit B, Krishnamurthy A, Hilfinger P, Graham S, Gay D, Colella P, Aiken A (1998) Titanium: a high-performance Java dialect. In: ACM workshop on Java for high-performance network computing. Concurr Pract Exp 10(11-13):825–836

Download references

Author information

Correspondence to Sang Boem Lim.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Lim, S.B., Lee, H., Carpenter, B. et al. Runtime support for scalable programming in Java. J Supercomput 43, 165–182 (2008). https://doi.org/10.1007/s11227-007-0125-5

Download citation

Keywords

  • HPJava
  • Parallel runtime library
  • mpiJava