An Approach to Buffer Management in Java HPC Messaging

  • Mark Baker
  • Bryan Carpenter
  • Aamir Shafi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3992)


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.


Allocation Time Memory Management Direct Memory Access Java Virtual Machine Garbage Collector 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Baker, M., Carpenter, B., Fox, G., Ko, S.H., Lim, S.: An object-oriented Java interface to MPI. In: International Workshop on Java for Parallel and Distributed Computing, San Juan, Puerto Rico (April 1999)Google Scholar
  2. 2.
    Baker, M., Ong, H., Shafi, A.: A status report: Early experiences with the implementation of a message passing system using Java NIO. Technical Report DSGTR06102004, DSG (October 2004),
  3. 3.
    Chang, C.-C., von Eicken, T.: Javia: A Java interface to the virtual interface architecture. Concurrency - Practice and Experience 12(7), 573–593 (2000)CrossRefMATHGoogle Scholar
  4. 4.
    The Java Native Interface Specifications,
  5. 5.
    Knuth, D.: The Art of Computer Programming: Fundamental Algorithms. Addison-Wesley, Reading (1973)Google Scholar
  6. 6.
  7. 7.
    Myricom, The MX (Myrinet eXpress) library,
  8. 8.
    The Java New I/O Specifications,
  9. 9.
    Welsh, M., Culler, D.: Jaguar: enabling efficient communication and I/O in Java. Concurrency: Practice and Experience 12(7), 519–538 (2000)CrossRefMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Mark Baker
    • 1
  • Bryan Carpenter
    • 1
  • Aamir Shafi
    • 1
  1. 1.Distributed Systems GroupUniversity of PortsmouthUSA

Personalised recommendations