A Buffering Layer to Support Derived Types and Proprietary Networks for Java HPC

MPJ Express is our implementation of MPI-like bindings for Java. In this paper we discuss our intermediate buffering layer that makes use of the so-called direct byte buffers introduced in the Java New I/O package. The purpose of this layer is to support the implementation of derived datatypes. MPJ Express is the first Java messaging library that implements this feature using pure Java. In addition, this buffering layer allows efficient implementation of communication devices based on proprietary networks such as Myrinet. In this paper we evaluate the performance of our buffering layer and demonstrate the usefulness of direct byte buffers. Also, we evaluate the performance of MPJ Express against other messaging systems using Myrinet and show that our buffering layer has made it possible to avoid the overheads suffered by other Java systems such as mpiJava that relies on the Java Native Interface.

[1]  Friedhelm Meyer auf der Heide,et al.  A Web Computing Environment for Parallel Algorithms in Java , 2001, Scalable Comput. Pract. Exp..

[2]  Geoffrey C. Fox,et al.  MPIJAVA: An Object-Oriented JAVA Interface to MPI , 1999, IPPS/SPDP Workshops.

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

[4]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[5]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[6]  Patrizio Dazzi,et al.  Joint Structured/Unstructured Parallelism Exploitation in muskel , 2006, International Conference on Computational Science.

[7]  David E. Culler,et al.  Jaguar: enabling efficient communication and I/O in Java , 2000, Concurr. Pract. Exp..

[8]  Marco Danelutto,et al.  An advanced environment supporting structured parallel programming in Java , 2003, Future Gener. Comput. Syst..

[9]  Geoffrey C. Fox,et al.  A DEVICE LEVEL COMMUNICATION LIBRARY FOR THE HPJAVA PROGRAMMING LANGUAGE , 2003 .

[10]  Sergei Gorlatch,et al.  A Prototype Grid System Using Java and RMI , 2003, PaCT.

[11]  Thorsten von Eicken,et al.  Javia: A Java interface to the virtual interface architecture , 2000 .

[12]  Ron Hitchens Java NIO , 2002 .

[13]  Thorsten von Eicken,et al.  Javia: A Java interface to the virtual interface architecture , 2000, Concurr. Pract. Exp..

[14]  Donald E. Knuth The art of computer programming: fundamental algorithms , 1969 .

[15]  Bu-Sung Lee,et al.  JBSP: A BSP Programming Library in Java , 2001, J. Parallel Distributed Comput..

[16]  David E. Culler,et al.  Jaguar: enabling efficient communication and I/O in Java , 2000 .

[17]  Rob Gordon,et al.  Essential Jni: Java Native Interface , 1998 .