Javia: A Java interface to the virtual interface architecture

The Virtual Interface (VI) architecture has become the industry standard for user-level network interfaces. This paper presents the implementation and evaluation of Javia, a Java interface to the VI architecture. Javia explores two points in the design space. The first approach manages buffers in C and requires data copies between the Java heap and native buffers. The second approach relies on a Java-level buffer abstraction that eliminates the copies in the first approach. Javia achieves an effective bandwidth of 80 Mbytes s−1 for 8 kbyte messages, which is within 1% of those achieved by C programs. Performance evaluations of parallel matrix multiplication and of the active messages communication protocol show that Javia can serve as an efficient building block for Java cluster applications. Copyright © 2000 John Wiley & Sons, Ltd.

[1]  David Detlefs,et al.  Garbage collection and local variable type-precision and liveness in Java virtual machines , 1998, PLDI.

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

[3]  Ali-Reza Adl-Tabatabai,et al.  Fast, effective code generation in a just-in-time Java compiler , 1998, PLDI.

[4]  A. Chien,et al.  High Performance Messaging on Workstations: Illinois Fast Messages (FM) for Myrinet , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[5]  Jason Maassen,et al.  An efficient implementation of Java's remote method invocation , 1999, PPoPP '99.

[6]  Dhabaleswar K. Panda,et al.  Network-Based Parallel Computing. Communication, Architecture, and Applications , 1999, Lecture Notes in Computer Science.

[7]  Calton Pu,et al.  Harnessing user-level networking architectures for distributed object computing over high-speed networks , 1998 .

[8]  Vladimir Getov,et al.  High-performance parallel programming in Java: exploiting native libraries , 1998 .

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

[10]  Thorsten von Eicken,et al.  U-Net: a user-level network interface for parallel and distributed computing , 1995, SOSP.

[11]  Samuel P. Midkiff,et al.  From Flop to MegaFlops: Java for Technical Computing , 1998, LCPC.

[12]  Michael Philippsen,et al.  A more efficient RMI for Java , 1999, JAVA '99.

[13]  Erik Ruf,et al.  Marmot: an optimizing compiler for Java , 2000 .

[14]  Adam J. Ferrari JPVM: Network Parallel Computing in Java , 1997 .

[15]  Dennis Gannon,et al.  Java RMI performance and object model interoperability: experiments with Java/HPC++ , 1998 .

[16]  David E. Culler,et al.  An Implementation and Analysis of the Virtual Interface Architecture , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[17]  Kai Li,et al.  Myrinet communication , 1998, IEEE Micro.

[18]  Mauricio J. Serrano,et al.  Thin locks: featherweight synchronization for Java , 1998, PLDI '98.