HPC in Java: experiences in implementing the NAS parallel benchmarks

This paper reports on the design, implementation and benchmarking of a Java version of the Nas Parallel Benchmarks. We first briefly describe the implementation and the performance pitfalls. We then compare the overall performance of the Fortran MPI (PGI) version with a Java implementation using the ProActive middleware for distribution. All Java experiments were conducted on virtual machines with different vendors and versions. We show that the performance varies with the type of computation but also with the Java Virtual Machine, no single one providing the best performance in all experiments. We also show that the performance of the Java version is close to the Fortran one on computational intensive benchmarks. However, on some communications intensive benchmarks, the Java version exhibits scalability issues, even when using a high performance socket implementation (JFS).

[1]  Jason Maassen,et al.  Ibis: a flexible and efficient Java-based Grid programming environment: Research Articles , 2005 .

[2]  J.M. Chang,et al.  An analysis of the garbage collection performance in Sun's HotSpot/sup TM/ Java Virtual Machine , 2002, Conference Proceedings of the IEEE International Performance, Computing, and Communications Conference (Cat. No.02CH37326).

[3]  Subhash Saini,et al.  A scalability Study of Columbia using the NAS Parallel Benchmarks , 2006 .

[4]  Dhabaleswar K. Panda,et al.  A case for high performance computing with virtual machines , 2006, ICS '06.

[5]  Michael Frumkin,et al.  Implementation of NAS Parallel Benchmarks in High Performance Fortran , 2000 .

[6]  Denis Caromel,et al.  Object-oriented SPMD , 2005, CCGrid 2005. IEEE International Symposium on Cluster Computing and the Grid, 2005..

[7]  Laxmikant V. Kale,et al.  Programming Petascale Applications with Charm , 2007 .

[8]  Denis Caromel,et al.  Toward a method of object-oriented concurrent programming , 1993, CACM.

[9]  Samuel P. Midkiff,et al.  A comparison of three approaches to language, compiler, and library support for multidimensional arrays in Java , 2001, JGI '01.

[10]  Juan Touriño,et al.  Efficient Java Communication Protocols on High-speed Cluster Interconnects , 2006, Proceedings. 2006 31st IEEE Conference on Local Computer Networks.

[11]  Denis Caromel,et al.  A High Performance Java Middleware with a Real Application , 2004, Proceedings of the ACM/IEEE SC2004 Conference.

[12]  Geir Evensen JavaGrande : High performance computing with Java , 2001 .

[13]  Sergei Gorlatch,et al.  Send-receive considered harmful: Myths and realities of message passing , 2004, TOPL.

[14]  Hanspeter Mössenböck,et al.  Array bounds check elimination for the Java HotSpot#8482; client compiler , 2007, PPPJ.

[15]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[16]  Katherine A. Yelick,et al.  Titanium Performance and Potential: An NPB Experimental Study , 2005, LCPC.

[17]  Hanspeter Mössenböck,et al.  Design of the Java HotSpot#8482; client compiler for Java 6 , 2008, TACO.

[18]  Jason Maassen,et al.  Ibis: a flexible and efficient Java‐based Grid programming environment , 2005, Concurr. Pract. Exp..