Implementing java on clusters
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. © Springer-Verlag Berlin Heidelberg 2001.