Design of scalable Java message-passing communications over InfiniBand

This paper presents ibvdev a scalable and efficient low-level Java message-passing communication device over InfiniBand. The continuous increase in the number of cores per processor underscores the need for efficient communication support for parallel solutions. Moreover, current system deployments are aggregating a significant number of cores through advanced network technologies, such as InfiniBand, increasing the complexity of communication protocols, especially when dealing with hybrid shared/distributed memory architectures such as clusters. Here, Java represents an attractive choice for the development of communication middleware for these systems, as it provides built-in networking and multithreading support. As the gap between Java and compiled languages performance has been narrowing for the last years, Java is an emerging option for High Performance Computing (HPC).The developed communication middleware ibvdev increases Java applications performance on clusters of multicore processors interconnected via InfiniBand through: (1) providing Java with direct access to InfiniBand using InfiniBand Verbs API, somewhat restricted so far to MPI libraries; (2) implementing an efficient and scalable communication protocol which obtains start-up latencies and bandwidths similar to MPI performance results; and (3) allowing its integration in any Java parallel and distributed application. In fact, it has been successfully integrated in the Java messaging library MPJ Express.The experimental evaluation of this middleware on an InfiniBand cluster of multicore processors has shown significant point-to-point performance benefits, up to 85% start-up latency reduction and twice the bandwidth compared to previous Java middleware on InfiniBand. Additionally, the impact of ibvdev on message-passing collective operations is significant, achieving up to one order of magnitude performance increases compared to previous Java solutions, especially when combined with multithreading. Finally, the efficiency of this middleware, which is even competitive with MPI in terms of performance, increments the scalability of communications intensive Java HPC applications.

[1]  Juan Touriño,et al.  Performance analysis of Java message-passing libraries on fast Ethernet, Myrinet and SCI clusters , 2003, 2003 Proceedings IEEE International Conference on Cluster Computing.

[2]  Henri E. Bal,et al.  Run‐time optimizations for a Java DSM implementation , 2003, Concurr. Comput. Pract. Exp..

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

[4]  Yuhui Deng,et al.  Cluster computing and grid 2005 works in progress , 2005 .

[5]  Juan Touriño,et al.  Java for high performance computing: assessment of current research and practice , 2009, PPPJ '09.

[6]  Rob van Nieuwpoort,et al.  MPJ/Ibis: A Flexible and Efficient Message Passing Platform for Java , 2005, PVM/MPI.

[7]  Kevin J. Nowka,et al.  Designing for a gigahertz [guTS integer processor] , 1998, IEEE Micro.

[8]  Mark Baker,et al.  Pluggable Architecture for Java HPC Messaging , 2005 .

[9]  V. Springel The Cosmological simulation code GADGET-2 , 2005, astro-ph/0505010.

[10]  Vipin Kumar,et al.  Parallel and Distributed Computing for Cybersecurity , 2005, IEEE Distributed Syst. Online.

[11]  Juan Touriño,et al.  NPB-MPJ: NAS Parallel Benchmarks Implementation for Message-Passing in Java , 2009, 2009 17th Euromicro International Conference on Parallel, Distributed and Network-based Processing.

[12]  Sabela Ramos,et al.  Java in the High Performance Computing arena: Research, practice and experience , 2013, Sci. Comput. Program..

[13]  Mark Baker,et al.  Device level communication libraries for high‐performance computing in Java , 2011, Concurr. Comput. Pract. Exp..

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

[15]  Hongwei Zhang,et al.  A Performance Study of Java Communication Stacks over InfiniBand and Giga-bit Ethernet , 2007, 2007 IFIP International Conference on Network and Parallel Computing Workshops (NPC 2007).

[16]  Mark Baker,et al.  A Buffering Layer to Support Derived Types and Proprietary Networks for Java HPC , 2001, Scalable Comput. Pract. Exp..

[17]  Juan Touriño,et al.  Java Fast Sockets: Enabling high-speed Java communications on high performance clusters , 2008, Comput. Commun..

[18]  Hiroshi Tezuka,et al.  Pin-down cache: a virtual memory management technique for zero-copy communication , 1998, Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.

[19]  Juan Touriño,et al.  F-MPJ: scalable Java message-passing communications on parallel systems , 2012, The Journal of Supercomputing.

[20]  Mark Baker,et al.  Nested parallelism for multi-core HPC systems using Java , 2009, J. Parallel Distributed Comput..

[21]  Siddhartha Chatterjee,et al.  An Evaluation of Java for Numerical Computing , 1998, ISCOPE.

[22]  Mark Baker,et al.  MPJ Express Meets Gadget: Towards a Java Code for Cosmological Simulations , 2006, PVM/MPI.

[23]  Binbin Xu,et al.  Heterogeneous Search in Unstructured Peer-to-Peer Networks , 2005, IEEE Distributed Syst. Online.

[24]  Geoffrey C. Fox,et al.  mpiJava 1.2: API Specification , 1999 .

[25]  Philippe Olivier Alexandre Navaux,et al.  Asynchronous communication in Java over Infiniband and DECK , 2005, 17th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD'05).

[26]  Hongwei Zhang,et al.  Jdib: Java Applications Interface to Unshackle the Communication Capabilities of InfiniBand Networks , 2007, 2007 IFIP International Conference on Network and Parallel Computing Workshops (NPC 2007).

[27]  Xubin He,et al.  uStream: A User-Level Stream Protocol over Infiniband , 2009, 2009 15th International Conference on Parallel and Distributed Systems.

[28]  Jizhong Han,et al.  Enabling RDMA Capability of InfiniBand Network for Java Applications , 2008, 2008 International Conference on Networking, Architecture, and Storage.

[29]  Greg J. Regnier,et al.  The Virtual Interface Architecture , 2002, IEEE Micro.