Java for High Performance Computing

Java offers a number of benefits as a language for High Performance Computing (HPC), especially in the context of the Computational Grid. The first section of this document summarises these benefits with an aim of motivating the use of Java for HPC. Although Java offers a number of potential benefits, there are a number of issues surrounding the use of Java for HPC, principally performance, numerics and parallelism. The remainder of this document considers these different issues, focusing on performance and parallelism. Performance issues relevant to HPC applications will be examined, and benchmarks for evaluating different Java environments, for inter-language comparisons and for testing the performance and scalability of different Java parallel models (native threads, message passing and OpenMP) will be considered.

[1]  Xuejia Lai,et al.  Markov Ciphers and Differential Cryptanalysis , 1991, EUROCRYPT.

[2]  Roger W. Hockney A framework for benchmark performance analysis , 1991 .

[3]  Anthony J. G. Hey,et al.  The Genesis distributed memory benchmarks , 1991, Parallel Comput..

[4]  J. Dongarra Performance of various computers using standard linear equations software , 1990, CARN.

[5]  Vladimir Getov,et al.  Towards Portable Message Passing in Java: Binding MPI , 1997, PVM/MPI.

[6]  Geoffrey C. Fox,et al.  MpiJava: A Java Interface to MPI , 1998 .

[7]  Michael Philippsen,et al.  Large-scale parallel geophysical algorithms in Java: a feasibility study , 1998, Concurr. Pract. Exp..

[8]  Geoffrey C. Fox,et al.  Object serialization for marshalling data in a Java interface to MPI , 1999, JAVA '99.

[10]  Michael Factor,et al.  cJVM: a single system image of a JVM on a cluster , 1999, Proceedings of the 1999 International Conference on Parallel Processing.

[11]  Mark J. Clement,et al.  Design issues for efficient implementation of MPI in Java , 1999, JAVA '99.

[12]  Alan L. Cox,et al.  Run-Time Support for Distributed Sharing in Typed Languages , 2000, LCR.

[13]  Martin D. Westhead,et al.  A benchmark suite for high performance Java , 2000, Concurr. Pract. Exp..

[14]  Jonathan M. Bull,et al.  A Multithreaded Java Grande Benchmark Suite , 2001 .

[15]  Mark Kambites,et al.  An OpenMP‐like interface for parallel programming in Java , 2001, Concurr. Comput. Pract. Exp..

[16]  J. Mark Bull,et al.  Benchmarking Java against C and Fortran for scientific applications , 2001, JGI '01.

[17]  J. M. Bull,et al.  Measuring Synchronisation and Scheduling Overheads in OpenMP , 2007 .