Abstract
We have implemented a virtual machine (VM) for Java which executes on a cluster. Our cluster VM completely hides the cluster from the application, presenting a single system image (SSI) (i.e., the application sees a traditional virtual machine). At the same time it leverages the cluster to achieve improved performance for a range of applications. We show how the flexibility and constraints of the Java Virtual Machine (JVM) Specification [7] impacted the design of our cluster VM. We describe issues related to class loading and distribution-aware implementations of the bytecodes. We also point out the limits on providing a solution for completely transparent distribution of multi-threaded Java applications if one does not modify the VM or the core classes.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Yariv Aridor, Michael Factor, and Avi Teperman. Implementing Java on Clusters. Technical report, IBM Research Laboratory in Haifa, 2001.
Yariv Aridor, Michael Factor, Avi Teperman, Tamar Eilam, and Assaf Schuster. Transparently obtaining scalability for Java applications on a cluster. Journal of Parallel and Distributed Computing, 60(10):1159–1193, October 2000.
Denis Caromel and Julien Vayssiere. A Java framework for seamless sequential, multi-threaded, and distributed programming. In ACM 1998 Workshop on Java for High-Performance Network Computing, Palo Alto, CA, February 1998. ACM.
Vladimir Getov, Susan Flynn-Hummel, and Sava Mintchev. High-performance parallel programming in Java: Exploiting native libraries. In ACM 1998 Workshop on Java for High-Performance Network Computing, Palo Alto, CA, February 1998. ACM.
Michael Hicks, Suresh Jagannathan, Richard Kelsey, Jonathan T. Moore, and Cristian Ungureanu. Transparent communication for distributed objects in Java. In Proceedings of the ACM 1999 Conference on Java Grande, pages 160–170, Palo Alto, CA, 1999. ACM.
Richard Jones and Rafael Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, Chichester, England, 1996.
Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison-Wesley, second edition, 1999.
Matchy J. M. Ma, Cho-Li Wang, Francis M. Lau, and Zhiwei Xu. JESSICA: Java-enabled single-system-image computing architecture. In Proceedings of 1999 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’ 99), volume VI, pages 2781–2787, Las Vegas, NV, June 1999.
Mark W. MacBeth, Keith A. McGuigan, and Philip J. Hatcher. Executing Java threads in parallel in a distributed-memory environment. In Proceedings of the IBM Centre for Advanced Studies Conference, Toronto, Canada, 1998.
Michael Philippsen and Matthias Zenger. JavaParty: Transparent remote objects in Java. Concurrency: Practice and Experience, 9(11):1225–1242, November 1997.
Matt Welsh and David Culler. Jaguar: Enabling efficient communication and I/O in Java. Concurrency: Practice and Experience, 12:519–538, December 1999. Special Issue on Java for High-Performance Applications.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aridor, Y., Factor, M., Teperman, A. (2001). Implementing Java on Clusters. In: Sakellariou, R., Gurd, J., Freeman, L., Keane, J. (eds) Euro-Par 2001 Parallel Processing. Euro-Par 2001. Lecture Notes in Computer Science, vol 2150. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44681-8_104
Download citation
DOI: https://doi.org/10.1007/3-540-44681-8_104
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42495-6
Online ISBN: 978-3-540-44681-1
eBook Packages: Springer Book Archive