Java for high performance computing: assessment of current research and practice
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Performance Evaluation of MPI, UPC and OpenMP on Multicore Architectures
Proceedings of the 16th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface
Design of efficient Java message-passing collectives on multi-core clusters
The Journal of Supercomputing
Exploiting Inherent Task-Based Parallelism in Object-Oriented Programming
GRID '11 Proceedings of the 2011 IEEE/ACM 12th International Conference on Grid Computing
Design of scalable Java message-passing communications over InfiniBand
The Journal of Supercomputing
Performance analysis of HPC applications in the cloud
Future Generation Computer Systems
Java in the High Performance Computing arena: Research, practice and experience
Science of Computer Programming
Evaluation of messaging middleware for high-performance cloud computing
Personal and Ubiquitous Computing
Hi-index | 0.00 |
Java is a valuable and emerging alternative for the development of parallel applications, thanks to the availability of several Java message-passing libraries and its full multithreading support. The combination of both shared and distributed memory programming is an interesting option for parallel programming multi-core systems. However, the concerns about Java performance are hindering its adoption in this field, although it is difficult to evaluate accurately its performance due to the lack of standard benchmarks in Java.This paper presents NPB-MPJ, the first extensive implementation of the NAS Parallel Benchmarks (NPB), the standard parallel benchmark suite, for Message-Passing in Java (MPJ) libraries. Together with the design and implementation details of NPB-MPJ, this paper gathers several optimization techniques that can serve as a guide for the development of more efficient Java applications for High Performance Computing (HPC). NPB-MPJ has been used in the performance evaluation of Java against C/Fortran parallel libraries on two representative multi-core clusters. Thus, NPB-MPJ provides an up-to-date snapshot of MPJ performance, whose comparative analysis of current Java and native parallel solutions confirms that MPJ is an alternative for parallel programming multi-core systems.