skip to main content
10.1145/1596655.1596661acmconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Java for high performance computing: assessment of current research and practice

Published: 27 August 2009 Publication History

Abstract

The rising interest in Java for High Performance Computing (HPC) is based on the appealing features of this language for programming multi-core cluster architectures, particularly the built-in networking and multithreading support, and the continuous increase in Java Virtual Machine (JVM) performance. However, its adoption in this area is being delayed by the lack of analysis of the existing programming options in Java for HPC and evaluations of their performance, as well as the unawareness of the current research projects in this field, whose solutions are needed in order to boost the embracement of Java in HPC.
This paper analyzes the current state of Java for HPC, both for shared and distributed memory programming, presents related research projects, and finally, evaluates the performance of current Java HPC solutions and research developments on a multi-core cluster with a high-speed network, InfiniBand, and a 24-core shared memory machine. The main conclusions are that: (1) the significant interest on Java for HPC has led to the development of numerous projects, although usually quite modest, which may have prevented a higher development of Java in this field; and (2) Java can achieve almost similar performance to native languages, both for sequential and parallel applications, being an alternative for HPC programming. Thus, the good prospects of Java in this area are attracting the attention of both industry and academia, which can take significant advantage of Java adoption in HPC.

References

[1]
B. Amedro, V. Bodnartchouk, D. Caromel, C. Delbé, F. Huet, and G. L. Taboada. Current State of Java for HPC. In INRIA Technical Report RT-0353, 24 pages, http://hal.inria.fr/inria-00312039/en/ {Last visited: July 2009}.
[2]
L. Baduel, F. Baude, and D. Caromel. Object-oriented SPMD. In Proc. 5th IEEE Intl. Symposium on Cluster Computing and the Grid (CCGrid'05), pages 824--831, Cardiff, UK, 2005.
[3]
M. Baker, B. Carpenter, G. Fox, S. Ko, and S. Lim. mpiJava: an Object-Oriented Java Interface to MPI. In Proc. 1st Intl. Workshop on Java for Parallel and Distributed Computing (IWJPDC'99), LNCS vol. 1586, pages 748--762, San Juan, Puerto Rico, 1999.
[4]
S. Bang and J. Ahn. Implementation and Performance Evaluation of Socket and RMI based Java Message Passing Systems. In Proc. 5th Intl. Conf. on Software Engineering Research, Management and Applications (SERA'07), pages 153--159, Busan, Korea, 2007.
[5]
L. A. Barchet-Estefanel and G. Mounie. Fast Tuning of Intra-cluster Collective Communications. In Proc. 11th European PVM/MPI Users' Group Meeting (EuroPVM/MPI'04), LNCS vol. 3241, pages 28--35, Budapest, Hungary, 2004.
[6]
M. Bornemann, R. V. v. Nieuwpoort, and T. Kielmann. MPJ/Ibis: a Flexible and Efficient Message Passing Platform for Java. In Proc. 12th European PVM/MPI Users' Group Meeting (EuroPVM/MPI'05), LNCS vol. 3666, pages 217--224, Sorrento, Italy, 2005.
[7]
J. M. Bull, L. A. Smith, M. D. Westhead, D. S. Henty, and R. A. Davey. A Benchmark Suite for High Performance Java. Concurrency: Practice and Experience, 12(6):375--388, 2000.
[8]
B. Carpenter, G. Fox, S.-H. Ko, and S. Lim. mpiJava 1.2: API Specification. http://www.hpjava.org/reports/mpiJava-spec/mpiJava-spec/mpiJava-spec.html {Last visited: July 2009}.
[9]
B. Carpenter, V. Getov, G. Judd, A. Skjellum, and G. Fox. MPJ: MPI-like Message Passing for Java. Concurrency: Practice and Experience, 12(11):1019--1038, 2000.
[10]
E. Chan, M. Heimlich, A. Purkayastha, and R. A. van de Geijn. Collective Communication: Theory, Practice, and Experience. Concurrency and Computation: Practice and Experience, 19(13):1749--1783, 2007.
[11]
K. Datta, D. Bonachea, and K. A. Yelick. Titanium Performance and Potential: An NPB Experimental Study. In Proc. 18th Intl. Workshop on Languages and Compilers for Parallel Computing (LCPC'05), LNCS vol. 4339, pages 200--214, Hawthorne, NY, USA, 2005.
[12]
J. Dongarra, D. Gannon, G. Fox, and K. Kennedy. The Impact of Multicore on Computational Science Software. CTWatch Quarterly, 3(1):1--10, 2007.
[13]
S. Genaud and C. Rattanapoka. P2P-MPI: A Peer-to-Peer Framework for Robust Execution of Message Passing Parallel Programs. Journal of Grid Computing, 5(1):27--42, 2007.
[14]
W. Huang, H. Zhang, J. He, J. Han, and L. Zhang. Jdib: Java Applications Interface to Unshackle the Communication Capabilities of InfiniBand Networks. In Proc. 4th Intl. Conf. Network and Parallel Computing (NPC'07), pages 596--601, Dalian, China, 2007.
[15]
Java Grande Forum. http://www.javagrande.org. {Last visited: July 2009}.
[16]
M. E. Kambites, J. Obdrzálek, and J. M. Bull. An OpenMP-like Interface for Parallel Programming in Java. Concurrency and Computation: Practice and Experience, 13(8--9):793--814, 2001.
[17]
A. Kaminsky. Parallel Java: A Unified API for Shared Memory and Cluster Parallel Programming in 100% Java. In Proc. 9th Intl. Workshop on Java and Components for Parallelism, Distribution and Concurrency (IWJacPDC'07), page 196a (8 pages), Long Beach, CA, USA, 2007.
[18]
M. Klemm, M. Bezold, R. Veldema, and M. Philippsen. JaMP: an Implementation of OpenMP for a Java DSM. Concurrency and Computation: Practice and Experience, 19(18):2333--2352, 2007.
[19]
D. Kurzyniec, T. Wrzosek, V. Sunderam, and A. Slominski. RMIX: A Multiprotocol RMI Framework for Java. In Proc. 5th Intl. Workshop on Java for Parallel and Distributed Computing (IWJPDC'03), page 140 (7 pages), Nice, France, 2003.
[20]
J. Maassen, R. V. v. Nieuwpoort, R. Veldema, H. Bal, T. Kielmann, C. Jacobs, and R. Hofman. Efficient Java RMI for Parallel Programming. ACM Transactions on Programming Languages and Systems, 23(6):747--775, 2001.
[21]
D. A. Mallón, G. L. Taboada, J. Touriño, and R. Doallo. NPB-MPJ: NAS Parallel Benchmarks Implementation for Message-Passing in Java. In Proc. 17th Euromicro Intl. Conf. on Parallel, Distributed, and Network-Based Processing (PDP'09), pages 181--190, Weimar, Germany, 2009.
[22]
R. V. v. Nieuwpoort, J. Maassen, G. Wrzesinska, R. Hofman, C. Jacobs, T. Kielmann, and H. E. Bal. Ibis: a Flexible and Efficient Java-based Grid Programming Environment. Concurrency and Computation: Practice and Experience, 17(7--8):1079--1107, 2005.
[23]
M. Philippsen, B. Haumacher, and C. Nester. More Efficient Serialization and RMI for Java. Concurrency: Practice and Experience, 12(7):495--518, 2000.
[24]
B. Pugh and J. Spacco. MPJava: High-Performance Message Passing in Java using Java.nio. In Proc. 16th Intl. Workshop on Languages and Compilers for Parallel Computing (LCPC'03), LNCS vol. 2958, pages 323--339, College Station, TX, USA, 2003.
[25]
A. Shafi, B. Carpenter, and M. Baker. Nested Parallelism for Multi-core HPC Systems using Java. Journal of Parallel and Distributed Computing, 69(6):532--545, 2009.
[26]
A. Shafi and J. Manzoor. Towards Efficient Shared Memory Communications in MPJ Express. In Proc. 11th Intl. Workshop on Java and Components for Parallelism, Distribution and Concurrency (IWJacPDC'09), Rome, Italy, page 111b (8 pages), 2009.
[27]
G. L. Taboada, C. Teijeiro, and J. Touriño. High Performance Java Remote Method Invocation for Parallel Computing on Clusters. In Proc. 12th IEEE Symposium on Computers and Communications (ISCC'07), pages 233--239, Aveiro, Portugal, 2007.
[28]
G. L. Taboada, J. Touriño, and R. Doallo. Performance Analysis of Java Message-Passing Libraries on Fast Ethernet, Myrinet and SCI Clusters. In Proc. 5th IEEE Intl. Conf. on Cluster Computing (CLUSTER'03), pages 118--126, Hong Kong, China, 2003.
[29]
G. L. Taboada, J. Touriño, and R. Doallo. Java Fast Sockets: Enabling High-speed Java Communications on High Performance Clusters. Computer Communications, 31(17):4049--4059, 2008.
[30]
G. L. Taboada, J. Touriño, and R. Doallo. F-MPJ: Scalable Java Message-passing Communications on Parallel Systems. Journal of Supercomputing, (In press).
[31]
R. Thakur, R. Rabenseifner, and W. Gropp. Optimization of Collective Communication Operations in MPICH. Intl. Journal of High Performance Computing Applications, 19(1):49--66, 2005.
[32]
S. S. Vadhiyar, G. E. Fagg, and J. J. Dongarra. Towards an Accurate Model for Collective Communications. Intl. Journal of High Performance Computing Applications, 18(1):159--167, 2004.
[33]
R. Veldema, R. F. H. Hofman, R. Bhoedjang, and H. E. Bal. Run-time Optimizations for a Java DSM Implementation. Concurrency and Computation: Practice and Experience, 15(3--5):299--316, 2003.
[34]
K. A. Yelick et al. Titanium: A High-performance Java Dialect. Concurrency - Practice and Experience, 10(11--13):825--836, 1998.
[35]
B.-Y. Zhang, G.-W. Yang, and W.-M. Zheng. Jcluster: an Efficient Java Parallel Environment on a Large-scale Heterogeneous Cluster. Concurrency and Computation: Practice and Experience, 18(12):1541--1557, 2006.

Cited By

View all
  • (2024)Benchmarking the Parallel 1D Heat Equation Solver in Chapel, Charm++, C++, HPX, Go, Julia, Python, Rust, Swift, and JavaEuro-Par 2023: Parallel Processing Workshops10.1007/978-3-031-48803-0_11(127-138)Online publication date: 14-Apr-2024
  • (2021)Towards Demystifying Intra-Function Parallelism in Serverless ComputingProceedings of the Seventh International Workshop on Serverless Computing (WoSC7) 202110.1145/3493651.3493672(42-49)Online publication date: 6-Dec-2021
  • (2020)On the parallelization and performance analysis of Barnes–Hut algorithm using Java parallel platformsSN Applied Sciences10.1007/s42452-020-2386-z2:4Online publication date: 10-Mar-2020
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPPJ '09: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
August 2009
200 pages
ISBN:9781605585987
DOI:10.1145/1596655
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 August 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. InfiniBand
  2. Java
  3. cluster
  4. high performance computing
  5. message-passing
  6. multi-core architectures
  7. performance evaluation
  8. threads

Qualifiers

  • Research-article

Funding Sources

  • Xunta de Galicia

Conference

PPPJ '09
PPPJ '09: Principles and Practice of Programming in Java
August 27 - 28, 2009
Alberta, Calgary, Canada

Acceptance Rates

Overall Acceptance Rate 29 of 58 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)17
  • Downloads (Last 6 weeks)1
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Benchmarking the Parallel 1D Heat Equation Solver in Chapel, Charm++, C++, HPX, Go, Julia, Python, Rust, Swift, and JavaEuro-Par 2023: Parallel Processing Workshops10.1007/978-3-031-48803-0_11(127-138)Online publication date: 14-Apr-2024
  • (2021)Towards Demystifying Intra-Function Parallelism in Serverless ComputingProceedings of the Seventh International Workshop on Serverless Computing (WoSC7) 202110.1145/3493651.3493672(42-49)Online publication date: 6-Dec-2021
  • (2020)On the parallelization and performance analysis of Barnes–Hut algorithm using Java parallel platformsSN Applied Sciences10.1007/s42452-020-2386-z2:4Online publication date: 10-Mar-2020
  • (2018)A general‐purpose distributed computing Java middlewareConcurrency and Computation: Practice and Experience10.1002/cpe.496731:7Online publication date: 3-Oct-2018
  • (2017)Characterizing and optimizing Java-based HPC applications on Intel many-core architecture基于Intel众核架构的Java高性能计算研究与优化Science China Information Sciences10.1007/s11432-015-0989-360:12Online publication date: 8-May-2017
  • (2016)UPC: Large-Scale Memory Efficient Java Primitive CollectionsJournal of Software10.17706/jsw.11.3.251-27111:3(251-271)Online publication date: 2016
  • (2015)odeToJavaACM Transactions on Mathematical Software10.1145/264156341:3(1-33)Online publication date: 1-Jun-2015
  • (2015)Open JDK Meets Xeon PhiProceedings of the 2015 44th International Conference on Parallel Processing Workshops (ICPPW)10.1109/ICPPW.2015.25(156-165)Online publication date: 1-Sep-2015
  • (2015)Evaluating ARM HPC clusters for scientific workloadsConcurrency and Computation: Practice & Experience10.1002/cpe.360227:17(5390-5410)Online publication date: 10-Dec-2015
  • (2013)Java in the High Performance Computing arenaScience of Computer Programming10.1016/j.scico.2011.06.00278:5(425-444)Online publication date: 1-May-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media