|
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
|
Gabriel Antoniu , Luc Bougé , Philip J. Hatcher , Mark MacBeth , Keith McGuigan , Raymond Namyst, Compiling Multithreaded Java Bytecode for Distributed Execution (Distinguished Paper), Proceedings from the 6th International Euro-Par Conference on Parallel Processing, p.1039-1052, August 29-September 01, 2000
|
| |
3
|
|
 |
4
|
Henri E. Bal , Raoul Bhoedjang , Rutger Hofman , Ceriel Jacobs , Koen Langendoen , Tim Rühl , M. Frans Kaashoek, Performance evaluation of the Orca shared-object system, ACM Transactions on Computer Systems (TOCS), v.16 n.1, p.1-40, Feb. 1998
[doi> 10.1145/273011.273014]
|
| |
5
|
Henri Bal , Raoul Bhoedjang , Rutger Hofman , Ceriel Jacobs , Koen Langendoen , Tim Rühl , Kees Verstoep, Performance of a high-level parallel language on a high-speed network, Journal of Parallel and Distributed Computing, v.40 n.1, p.49-64, Jan. 10, 1997
[doi> 10.1006/jpdc.1996.1265]
|
 |
6
|
|
 |
7
|
B. N. Bershad , S. Savage , P. Pardyak , E. G. Sirer , M. E. Fiuczynski , D. Becker , C. Chambers , S. Eggers, Extensibility safety and performance in the SPIN operating system, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.267-283, December 03-06, 1995, Copper Mountain, Colorado, United States
|
 |
8
|
Raoul A. F. Bhoedjang , Kees Verstoep , Tim Rühl , Henri E. Bal , Rutger F. H. Hofman, Evaluating design alternatives for reliable communication on high-speed networks, Proceedings of the ninth international conference on Architectural support for programming languages and operating systems, p.71-81, November 2000, Cambridge, Massachusetts, United States
|
 |
9
|
|
| |
10
|
Nanette J. Boden , Danny Cohen , Robert E. Felderman , Alan E. Kulawik , Charles L. Seitz , Jakov N. Seizovic , Wen-King Su, Myrinet: A Gigabit-per-Second Local Area Network, IEEE Micro, v.15 n.1, p.29-36, February 1995
[doi> 10.1109/40.342015]
|
| |
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
|
Michael G. Burke , Jong-Deok Choi , Stephen Fink , David Grove , Michael Hind , Vivek Sarkar , Mauricio J. Serrano , V. C. Sreedhar , Harini Srinivasan , John Whaley, The Jalapeño dynamic optimizing compiler for Java, Proceedings of the ACM 1999 conference on Java Grande, p.129-141, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304113]
|
 |
14
|
Bryan Carpenter , Geoffrey Fox , Sung Hoon Ko , Sang Lim, Object serialization for marshalling data in a Java interface to MPI, Proceedings of the ACM 1999 conference on Java Grande, p.66-71, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304099]
|
| |
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
|
A. Krishnamurthy , D. E. Culler , A. Dusseau , S. C. Goldstein , S. Lumetta , T. von Eicken , K. Yelick, Parallel programming in Split-C, Proceedings of the 1993 ACM/IEEE conference on Supercomputing, p.262-273, December 1993, Portland, Oregon, United States
[doi> 10.1145/169627.169724]
|
| |
19
|
|
 |
20
|
Vladimir Getov , Paul Gray , Vaidy Sunderam, MPI and Java-MPI: contrasts and comparisons of low-level communication performance, Proceedings of the 1999 ACM/IEEE conference on Supercomputing (CDROM), p.21-es, November 14-19, 1999, Portland, Oregon, United States
[doi> 10.1145/331532.331553]
|
| |
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
|
Matthew Izatt , Patrick Chan , Tim Brecht, Ajents: towards an environment for parallel, distributed and mobile Java applications, Proceedings of the ACM 1999 conference on Java Grande, p.15-24, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304089]
|
| |
28
|
Johnson, D. and Zwaenepoel, W. 1991. The Peregrine high-performance RPC system. Tech. Rep. TR91-151, Rice Univ., Mar.
|
 |
29
|
K. L. Johnson , M. F. Kaashoek , D. A. Wallach, CRL: high-performance all-software distributed shared memory, Proceedings of the fifteenth ACM symposium on Operating systems principles, p.213-226, December 03-06, 1995, Copper Mountain, Colorado, United States
|
 |
30
|
Glenn Judd , Mark Clement , Quinn Snell , Vladimir Getov, Design issues for efficient implementation of MPI in Java, Proceedings of the ACM 1999 conference on Java Grande, p.58-65, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304097]
|
 |
31
|
M. Frans Kaashoek , Dawson R. Engler , Gregory R. Ganger , Hector M. Briceño , Russell Hunt , David Mazières , Thomas Pinckney , Robert Grimm , John Jannotti , Kenneth Mackenzie, Application performance and flexibility on exokernel systems, Proceedings of the sixteenth ACM symposium on Operating systems principles, p.52-65, October 05-08, 1997, Saint Malo, France
|
 |
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
|
Ilya Lipkind , Igor Pechtchanski , Vijay Karamcheti, Object views: language support for intelligent object caching in parallel and distributed computations, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.447-460, November 01-05, 1999, Denver, Colorado, United States
|
 |
39
|
Jason Maassen , Thilo Kielmann , Henri E. Bal, Efficient replicated method invocation in Java, Proceedings of the ACM 2000 conference on Java Grande, p.88-96, June 03-04, 2000, San Francisco, California, United States
[doi> 10.1145/337449.337486]
|
 |
40
|
Jason Maassen , Rob van Nieuwpoort , Ronald Veldema , Henri E. Bal , Aske Plaat, An efficient implementation of Java's remote method invocation, Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming, p.173-182, May 04-06, 1999, Atlanta, Georgia, United States
|
| |
41
|
Mark W. MacBeth , Keith A. McGuigan , Philip J. Hatcher, Executing Java threads in parallel in a distributed-memory environment, Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research, p.16, November 30-December 03, 1998, Toronto, Ontario, Canada
|
 |
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
|
Christian Nester , Michael Philippsen , Bernhard Haumacher, A more efficient RMI for Java, Proceedings of the ACM 1999 conference on Java Grande, p.152-159, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304117]
|
| |
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
|
R. Veldema , R. F. H. Hofman , R. A. F. Bhoedjang , H. E. Bal, Runtime optimizations for a Java DSM implementation, Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande, p.153-162, June 2001, Palo Alto, California, United States
[doi> 10.1145/376656.376842]
|
 |
56
|
R. Veldema , R. F. H. Hofman , R. A. F. Bhoedjang , C. J. H. Jacobs , H. E. Bal, Source-level global optimizations for fine-grain distributed shared memory systems, Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming, p.83-92, June 2001, Snowbird, Utah, United States
|
 |
57
|
Thorsten von Eicken , David E. Culler , Seth Copen Goldstein , Klaus Erik Schauser, Active messages: a mechanism for integrated communication and computation, Proceedings of the 19th annual international symposium on Computer architecture, p.256-266, May 19-21, 1992, Queensland, Australia
|
| |
58
|
|
 |
59
|
Deborah A. Wallach , Wilson C. Hsieh , Kirk L. Johnson , M. Frans Kaashoek , William E. Weihl, Optimistic active messages: a mechanism for scheduling communication with computation, Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming, p.217-226, July 19-21, 1995, Santa Barbara, California, United States
|
| |
60
|
Welsh, M. and Culler, D. 2000. Jaguar: Enabling efficient communication and I/O from Java. Concurrency: Pract. Exper. 12, 7, 519-538.
|
 |
61
|
Steven Cameron Woo , Moriyoshi Ohara , Evan Torrie , Jaswinder Pal Singh , Anoop Gupta, The SPLASH-2 programs: characterization and methodological considerations, Proceedings of the 22nd annual international symposium on Computer architecture, p.24-36, June 22-24, 1995, S. Margherita Ligure, Italy
|
| |
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
|
|
Rob V. van Nieuwpoort , Jason Maassen , Rutger Hofman , Thilo Kielmann , Henri E. Bal, Ibis: an efficient Java-based grid programming environment, Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande, p.18-27, November 03-05, 2002, Seattle, Washington, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thilo Kielmann , Henri E. Bal , Jason Maassen , Rob van Nieuwpoort , Lionel Eyraud , Rutger Hofman , Kees Verstoep, Programming environments for high-performance grid computing: the Albatross project, Future Generation Computer Systems, v.18 n.8, p.1113-1125, October 2002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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...
|