1999 · 135 citations · 29 references
ComputingComputer ScienceComputer SystemsCluster ComputingCompilersParallel ComputingCommunication OverheadDistributed ComputingInterprocess CommunicationParallel Computing SystemsPerformance OptimizationRemote Procedure CallCompile-time OptimizationCompiler DesignCompiler SupportLatency ReductionRemote Method Invocation
Java offers interesting opportunities for parallel computing. In particular, Java Remote Method Invocation provides an unusually flexible kind of Remote Procedure Call. Unlike RPC, RMI supports polymorphism, which requires the system to be able to download remote classes into a running application. Sun's RMI implementation achieves this kind of flexibility by passing around object type information and processing it at run time, which causes a major run time overhead. Using Sun's JDK 1.1.4 on a Pentium Pro/Myri.net cluster, for example, the latency for a null RMI (without parameters or a return value) is 1228 μsec, which is about a factor of 40 higher than that of a user-level RPC. In this paper, we study an alternative approach for implementing RMI, based on native compilation. This approach allows for better optimization, eliminates the need for processing of type information at run time, and makes a light weight communication protocol possible. We have built a Java system based on a native compiler, which supports both compile time and run time generation of marshallers. We find that almost all of the run time overhead of RMI can be pushed to compile time. With this approach, the latency of a null RMI is reduced to 34 μsec, while still supporting polymorphic RMIs (and allowing interoperability with other JVMs).
29
Myrinet: a gigabit-per-second local area network
N.J. Boden, D. Cohen, Robert E. Felderman et al. · IEEE Micro · 1995 · 1.7K citations
Thorsten von Eicken, David Culler, Seth Copen Goldstein et al. · 1992 · 1.4K citations
Extensibility safety and performance in the SPIN operating system
Brian N. Bershad, Stefan Savage, Przemysław Pardyak et al. · 1995 · 955 citations
TreadMarks: distributed shared memory on standard workstations and operating systems
Pete Keleher, Anna L. Cox, Sandhya Dwarkadas et al. · 1994 · 640 citations
Parallel programming in Split-C
Arvind Krishnamurthy, David Culler, Andrea C. Dusseau et al. · 1993 · 534 citations