CEJVM is a cluster enabled Java Virtual Machine, which executes in a distributed fashion among collaborating nodes of a dedicated cluster. It extends Java's multithreading mechanism to the parallel computing paradigm by transparent migration of independent application threads modeled in master worker paradigm. The goal is to obtain improved performance for computationally-intensive multi-threaded Java programs without modifying traditional JVM code, Java language or compiler implementation. Deploying a master worker relationship among the nodes in the cluster, CEJVM monitors, packs, transports and resurrects the Java threads on "Master JVM" and helper "Worker JVMs". Currently, we have created a prototype that runs pure Java applications on the local Ethernet based cluster of Win2K computers. We have achieved appreciable speedup for an ANN training program written in Java (with independent threads) on CEJVM without any modification to the program's source code.
[1]
Francis C. M. Lau,et al.
JESSICA: Java-Enabled Single-System-Image Computing Architecture
,
2000,
J. Parallel Distributed Comput..
[2]
Frank Yellin,et al.
The Java Virtual Machine Specification
,
1996
.
[3]
Aart J. C. Bik,et al.
Automatically exploiting implicit parallelism in Java
,
1997
.
[4]
Mark Nuttall.
Survey of systems providing process or object migration
,
1994
.
[5]
Michael Factor,et al.
cJVM: a single system image of a JVM on a cluster
,
1999,
Proceedings of the 1999 International Conference on Parallel Processing.
[6]
Hai Jin,et al.
Designing SSI clusters with hierarchical checkpointing and single I/O space
,
1999,
IEEE Concurr..
[7]
Aart J. C. Bik,et al.
Automatically exploiting implicit parallelism in Java
,
1997,
Concurr. Pract. Exp..