Active messages: a mechanism for integrated communication and computation
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
Parallel programming in Split-C
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Optimistic active messages: a mechanism for scheduling communication with computation
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
CRL: high-performance all-software distributed shared memory
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
High performance messaging on workstations: Illinois fast messages (FM) for Myrinet
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
Making paths explicit in the Scout operating system
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Performance of a high-level parallel language on a high-speed network
Journal of Parallel and Distributed Computing - Special issue on workstation clusters and network-based computing
SIGMETRICS '97 Proceedings of the 1997 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Application performance and flexibility on exokernel systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
Performance evaluation of the Orca shared-object system
ACM Transactions on Computer Systems (TOCS)
The grid: blueprint for a new computing infrastructure
The grid: blueprint for a new computing infrastructure
Models for Asynchronous Message Handling
IEEE Parallel & Distributed Technology: Systems & Technology
Remote Procedure Calls and Java Remote Method Invocation
IEEE Concurrency
Efficient Multicast on Myrinet using Link-Level Flow Control
ICPP '98 Proceedings of the 1998 International Conference on Parallel Processing
Evaluating CORBA latency and scalability over high-speed ATM networks
ICDCS '97 Proceedings of the 17th International Conference on Distributed Computing Systems (ICDCS '97)
Efficient implementations of java remote method invocation (RMI)
COOTS'98 Proceedings of the 4th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 4
Toba: java for applications a way ahead of time (WAT) compiler
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
Wire-area parallel computing in Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Ajents: towards an environment for parallel, distributed and mobile Java applications
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Interfacing Java to the virtual interface architecture
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Efficient replicated method invocation in Java
Proceedings of the ACM 2000 conference on Java Grande
Requirements for and evaluation of RMI protocols for scientific computing
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Object-based collective communication in Java
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Runtime optimizations for a Java DSM implementation
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Efficient load balancing for wide-area divide-and-conquer applications
PPoPP '01 Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming
Source-level global optimizations for fine-grain distributed shared memory systems
PPoPP '01 Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming
Enabling Java for high-performance computing
Communications of the ACM
Multiparadigm communications in Java for grid computing
Communications of the ACM
The distributed ASCI Supercomputer project
ACM SIGOPS Operating Systems Review
Efficient Java RMI for parallel programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
AdJava: automatic distribution of Java applications
ACSC '02 Proceedings of the twenty-fifth Australasian conference on Computer science - Volume 4
Incommunicado: efficient communication for isolates
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object combining: A new aggressive optimization for object intensive programs
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
Experiments with multi-protocol RMI in Java
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
XtremWeb: Building an Experimental Platform for Global Computing
GRID '00 Proceedings of the First IEEE/ACM International Workshop on Grid Computing
Optimizing Java-Specific Overheads: Java at the Speed of C?
HPCN Europe 2001 Proceedings of the 9th International Conference on High-Performance Computing and Networking
Automatic Reincarnation of Deceased Plug-Ins in the HARNESS Metacomputing System
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Java Communications for Large-Scale Parallel Computing
LSSC '01 Proceedings of the Third International Conference on Large-Scale Scientific Computing-Revised Papers
Satin: Efficient Parallel Divide-and-Conquer in Java
Euro-Par '00 Proceedings from the 6th International Euro-Par Conference on Parallel Processing
NRMI: Natural and Efficient Middleware
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
JR: Flexible Distributed Programming in an Extended Java
ICDCS '01 Proceedings of the The 21st International Conference on Distributed Computing Systems
JR: Flexible distributed programming in an extended Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Portable and efficient distributed threads for Java
Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
EDO: Exception-directed optimization in java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Streaming support for Java RMI in distributed environments
PPPJ '06 Proceedings of the 4th international symposium on Principles and practice of programming in Java
Comparison of performance of Web services, WS-Security, RMI, and RMI-SSL
Journal of Systems and Software - Special issue: Quality software
Switching supports for stateful object remoting on network processors
The Journal of Supercomputing
Software architecture design for streaming Java RMI
Science of Computer Programming
Mobile Java RMI support over heterogeneous wireless networks: A case study
Journal of Parallel and Distributed Computing
Jade: a parallel message-driven java
ICCS'03 Proceedings of the 2003 international conference on Computational science: PartIII
RMIX: a dynamic, heterogeneous, reconfigurable communication framework
ICCS'06 Proceedings of the 6th international conference on Computational Science - Volume Part II
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Journal of Grid Computing
Hi-index | 0.03 |
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).