ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Efficient Java RMI for parallel programming
Full text PdfPdf (353 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 23 ,  Issue 6  (November 2001) table of contents
Pages: 747 - 775  
Year of Publication: 2001
ISSN:0164-0925
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 22,   Downloads (12 Months): 253,   Citation Count: 15
Additional Information:

abstract   references   cited by   index terms   review  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/506315.506317
What is a DOI?

ABSTRACT

Java offers interesting opportunities for parallel computing. In particular, Java Remote Method Invocation (RMI) provides a flexible kind of remote procedure call (RPC) that supports polymorphism. Sun's RMI implementation achieves this kind of flexibility at the cost of a major runtime overhead. The goal of this article is to show that RMI can be implemented efficiently, while still supporting polymorphism and allowing interoperability with Java Virtual Machines (JVMs). We study a new approach for implementing RMI, using a compiler-based Java system called Manta. Manta uses a native (static) compiler instead of a just-in-time compiler. To implement RMI efficiently, Manta exploits compile-time type information for generating specialized serializers. Also, it uses an efficient RMI protocol and fast low-level communication protocols.A difficult problem with this approach is how to support polymorphism and interoperability. One of the consequences of polymorphism is that an RMI implementation must be able to download remote classes into an application during runtime. Manta solves this problem by using a dynamic bytecode compiler, which is capable of compiling and linking bytecode into a running application. To allow interoperability with JVMs, Manta also implements the Sun RMI protocol (i.e., the standard RMI protocol), in addition to its own protocol.We evaluate the performance of Manta using benchmarks and applications that run on a 32-node Myrinet cluster. The time for a null-RMI (without parameters or a return value) of Manta is 35 times lower than for the Sun JDK 1.2, and only slightly higher than for a C-based RPC protocol. This high performance is accomplished by pushing almost all of the runtime overhead of RMI to compile time. We study the performance differences between the Manta and the Sun RMI protocols in detail. The poor performance of the Sun RMI protocol is in part due to an inefficient implementation of the protocol. To allow a fair comparison, we compiled the applications and the Sun RMI protocol with the native Manta compiler. The results show that Manta's null-RMI latency is still eight times lower than for the compiled Sun RMI protocol and that Manta's efficient RMI protocol results in 1.8 to 3.4 times higher speedups for four out of six applications.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Alexandrov, A. D., Ibel, M., Schauser, K. E., and Scheiman, C. J. 1997. SuperWeb: Research issues in Java-based global computing. Concurrency: Pract. Exper. 9, 6 (June), 535--553.
 
2
 
3
4
 
5
6
7
8
9
 
10
 
11
Breg, F., Diwan, S., Villacis, J., Balasubramanian, J., Akman, E., and Gannon, D. 1998. Java RMI performance and object model interoperability: Experiments with Java/HPC++ distributed components. In Proceedings of the ACM 1998 Workshop on Java for High-Performance Network Computing (Santa Barbara, CA), ACM, New York, NY.
12
13
14
 
15
16
 
17
Christiansen, B., Cappello, P., Ionescu, M. F., Neary, M. O., Schauser, K. E., and Wu, D. 1997. Javelin: Internet-based parallel computing using Java. Concurrency: Pract. Exper. 9, 11, 1139--1160.
18
 
19
20
 
21
Getov, V., Flynn-Hummel, S., and Mintchev, S. 1998. High-performance parallel programming in Java: Exploiting native libraries. In Proceedings of the ACM 1998 Workshop on Java for High-Performance Network Computing. ACM, New York, NY.
 
22
Gray, P. and Sunderam, V. 1997. IceT: Distributed computing and Java. Concurrency: Pract. Exper. 9, 11 (Nov.).
 
23
Hagimont, D. and Louvegnies, D. 1998. Javanaise: Distributed shared objects for internet cooperative applications. In Proceedings of the Middleware'98 Conference (The Lake District, England).
 
24
Hirano, S., Yasu, Y., and Igarashi, H. 1998. Performance evaluation of popular distributed object technologies for Java. In Proceedings of the ACM 1998 Workshop on Java for High-Performance Network Computing. Online at http://www.cs.ucsb.edu/conferences/java98/.
 
25
Hu, Y., Yu, W., Cox, A., Wallach, D., and Zwaenepoel, W. 1999. Runtime support for distributed sharing in strongly typed languages. Tech. Rep., Rice Univ. Online at http://www.cs.rice.edu/willy/TreadMarks/papers.html.
26
27
 
28
Johnson, D. and Zwaenepoel, W. 1991. The Peregrine high-performance RPC system. Tech. Rep. TR91-151, Rice Univ., Mar.
29
30
31
32
 
33
Keleher, P., Cox, A., Dwarkadas, S., and Zwaenepoel, W. 1994. TreadMarks: Distributed shared memory on standard workstations and operating systems. In Proceedings of the Winter 1994 Usenix Conference (San Francisco, CA), 115--131.
 
34
Krall, A. and Grafl, R. 1997. CACAO---A 64-bit JavaVM just-in-time compiler. Concurrency: Pract. Exper. 9, 11 (Nov.), 1017--1030. Online at http://www.complang.tuwien.ac.at/andi/.
 
35
Krishnaswamy, V., Walther, D., Bhola, S., Bommaiah, E., Riley, G., Topol, B., and Ahamad, M. 1998. Efficient implementations of Java RMI. In Proceedings of the 4th USENIX Conference on Object-Oriented Technologies and Systems (COOTS'98, Santa Fe, NM).
 
36
 
37
Launay, P. and Pazat, J.-L. 1998. The Do! project: Distributed programming using Java. In Proceedings of the First UK Workshop on Java for High Performance Network Computing (Southampton, England).
38
39
40
 
41
42
 
43
Muller, G., Moura, B., Bellard, F., and Consel, C. 1997. Harissa, a mixed offline compiler and interpreter for dynamic class loading. In Proceedings of the Third USENIX Conference on Object-Oriented Technologies (COOTS, Portland, OR).
44
 
45
Philippsen, M. and Zenger, M. 1997. JavaParty---Transparent remote objects in Java. Concurrency: Pract. Exper. 9, 11 (Nov.), 1225--1242. Online at http://wwwipd.ira.uka.de/JavaParty/.
 
46
Philippsen, M., Haumacher, B., and Nester, C. 2000. More efficient serialization and RMI for Java. Concurrency: Pract. Exper. 12, 7, 495--518.
 
47
Proebsting, T., Townsend, G., Bridges, P., Hartman, J., Newsham, T., and Watterson, S. 1997. Toba: Java for applications---a way ahead of time (WAT) compiler. In Proceedings of the 3rd Conference on Object-Oriented Technologies and Systems (Portland, OR).
 
48
 
49
Rodrigues, S., Anderson, T., and Culler, D. 1997. High-performance local communication with fast sockets. In USENIX'97.
50
 
51
Sun Microsystems. 1997. Java Remote Method Invocation Specification, JDK 1.1 FCS, Online at http://java.sun.com/products/jdk/rmi.
52
 
53
van Reeuwijk, K., van Gemund, A., and Sips, H. 1997. Spar: A programming language for semi-automatic compilation of parallel programs. Concurrency: Pract. Exper. 9, 11 (Aug.), 1193--1205.
 
54
55
56
57
 
58
59
 
60
Welsh, M. and Culler, D. 2000. Jaguar: Enabling efficient communication and I/O from Java. Concurrency: Pract. Exper. 12, 7, 519-538.
61
 
62
Yelick, K., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Hilfinger, P., Graham, S., Gay, D., Colella, P., and Aiken, A. 1998. Titanium: A high-performance Java dialect. In Proceedings of the ACM 1998 Workshop on Java for High-Performance Network Computing. Online at http://www.cs.ucsb.edu/conferences/java98/.
 
63
Yu, W. and Cox, A. 1997. Java/DSM: A platform for heterogeneous computing. Concurrency: Pract. Exper. 9, 11 (Nov.), 1213--1224.

CITED BY  15


REVIEW

"Thomas Rauber : Reviewer"

The authors present an efficient realization of the remote method invocation (RMI) mechanism of Java, and describe a compiler-based Java system called Manta that uses this RMI realization.

The motivation for the work is that many RMI impleme  more...