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.
Buy single article
Instant access to the full article PDF.
Price includes VAT for USA
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
This is the net price. Taxes to be calculated in checkout.
ACM (1998) Workshop on Java for high-performance network computing. Concurr Pract Exp 10(11-13):821–824
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
Briggs WL, Van Henson E, McCormick SF (2000) A multigrid tutorial. The Society for Industrial and Applied Mathematics (SIAM)
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
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
Java for computational science and engineering—simulation and modelling (1997) Concurr Pract Exp 9(6)
Java for computational science and engineering—simulation and modelling II (1997) Concurr Pract Exp 9(11):1001–1002
Java Grande Forum home page. http://www.javagrande.org
Lee HK (2003) Towards efficient compilation of the HPJava language for high performance computing. PhD thesis, Florida State University
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
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
Timber Compiler Home Page. http://pds.twi.tudelft.nl/timber
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
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
- Parallel runtime library