Summary:
JESSICA stands for "Java-Enabled Single-System Image Computing
Architecture", a middleware that runs on top of the standard UNIX
operating system to support parallel execution of multi-threaded Java
applications in a cluster of computers. JESSICA hides the physical boundaries
between machines and makes the cluster appear as a single computer to
applications -- a single-system image (SSI). JESSICA supports
preemptive thread migration which allows a thread to freely move between
machines during its execution, and global object sharing through the
help of a distributed-shared-memory subsystem. JESSICA implements location
transparency through a message-redirection mechanism. The result is
a parallel execution environment where threads are automatically redistributed
across the cluster for achieving maximal possible parallelism. Two JESSICA
prototypes, one runs on a 12-node Solaris cluster and the other runs
on an 8-node Linux cluster, have been implemented and considerable speedups
were obtained for all the experimental applications tested.
|
Features of JESSICA:
- Single-system
encapsulation:
The whole computer cluster is encapsulated as a single computer system
to realize the single-system image (SSI). SSI is realized through
the provision of a global thread space. When an application
is instantiated, the JESSICA system creates a logical thread space
that spans the whole cluster for the execution of the application's
threads, as shown in Figure 1. The global thread space hides the physical
boundaries between machines and allows Java threads to freely move
from one machine to another without users' knowledge of their physical
location.
- Single-program-parallel-subsystem
(SPPS) paradigm:
With SSI, parallel execution of an application can be achieved by
simply creating as many threads as needed. Threads are automatically
redistributed across the cluster to exploit real parallelism. Application
programmers no longer need to be bothered by the physical topology
of the underlying cluster, such as the number of processors available.
- Preemptive
migration of Java threads:
A Java thread can be preempted and migrated to another node anytime
during its execution for dynamic load balancing.
- Migration
and location transparency:
Any location-dependent resources are transparently accessible by a
migrated thread. The fact that the thread has migrated is not known
to the thread itself and other objects in the system.
- Compatibility: The implementation of JESSICA is at the
middleware level and is compatible with the standard JVM. Existing
applications thus are ready to run on the system without any modification.
- Portability: The JESSICA middleware, being a distributed
version of the JVM, runs on top of the standard UNIX operating system
as a distributed application. The implementation does not need any
low-level or platform-specific supports. Thus it is portable across
different hardware platforms.
|
System Architecture of JESSICA:
An overview of the JESSICA
system architecture is shown in Figure 2. At the top is the programming
and execution environment as experienced by the application programmer
-- a single global thread space powered by multiple CPUs. This "illusion"
layer is realized through the services of three important subsystems,
handling redirection of system requests, sharing of distributed memory,
and thread migration respectively. The actual implementation of these
subsystems is by means of daemon processes that run in all the nodes
in the cluster. These daemon processes execute as user-level processes
on top of the UNIX operating system.
|
Publications:
- B.W.L.
Cheung, C.L. Wang, and F.C.M. Lau. "Building a Global Object
Space for Supporting Single System Image on a Cluster", Annual
Review of Scalable Computing, Chapter 6, Volume 4, Year 2002.
(PDF, 410KB)
- M.J.M.
Ma, C.L. Wang, F.C.M. Lau. "JESSICA: Java-Enabled Single-System-Image
Computing Architecture", Journal of Parallel and Distributed
Computing. (GZipped PS, 275KB)
- Matchy
Ma. "JESSICA: Java-Enabled Single System Image Computing Architecture",
Thesis. (PDF, 623KB)
- M.J.M.
Ma, C.L. Wang, and F.C.M. Lau. "Delta Execution: A Preemptive
Java Thread Migration Mechanism", in Cluster Computing: The
Journal of Networks, Software Tools and Application . (PS,
464KB)
- M.J.M.
Ma, C.L. Wang, F.C.M. Lau, and Z. Xu. "JESSICA: Java-Enabled
Single-System-Image Computing Architecture", International
Conference on Parallel and Distributed Processing Techniques and Applications
(PDPTA'99), pp. 2781-2787, June 28 - July 1, 1999, Las Vegas,
Nevada, USA. (PS, 581KB)
- M.J.M.
Ma, C.L. Wang, and F.C.M. Lau. "Delta Execution: A Preemptive
Java Thread Migration Mechanism", International Conference
on Parallel and Distributed Processing Techniques and Applications
(PDPTA'99), pp. 518-524, June 28 - July 1, 1999, Las Vegas, Nevada,
USA. (MS-Word, 116KB)
- K.
Hwang, E. Chow, C.L. Wang, H. Jin, and Z. Xu. "Designing SSI
Cluster with Hierarchical Checkpointing and Single I/O Space",
in IEEE Concurrency Magazine, Spring 1999. (PDF,
180KB)
|