An Approach to Buffer Management in Java HPC Messaging

One of the most challenging aspects to designing a Java messaging system for HPC is the intermediate buffering layer. The lower and higher levels of the messaging software use this buffering layer to write and read messages. The Java New I/O package adds the concept of direct buffers, which—coupled with a memory management algorithm—opens the possibility of efficiently implementing this buffering layer. In this paper, we present our buffering strategy, which is developed to support efficient communications and derived datatypes in MPJ Express—our implementation of the Java MPI API. We evaluate the performance of our buffering layer and demonstrate the usefulness of direct byte buffers.

[1]  Mark Baker,et al.  MPJ: Enabling Parallel Simulations in Java , .

[2]  Dave Turner,et al.  Integrating New Capabilities into NetPIPE , 2003, PVM/MPI.

[3]  J. Wrench Table errata: The art of computer programming, Vol. 2: Seminumerical algorithms (Addison-Wesley, Reading, Mass., 1969) by Donald E. Knuth , 1970 .

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

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

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

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

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

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

[10]  David Thomas,et al.  The Art in Computer Programming , 2001 .

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

[12]  Geoffrey C. Fox,et al.  MPJ: MPI-like message passing for Java , 2000, Concurr. Pract. Exp..

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

[14]  Hong Ong,et al.  A Status Report: Early Experiences with the implementation of a Message Passing System using Java NIO , 2004 .

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