© Systems Research Group, Department of Computer Science, The University of Hong Kong.

Main ** People ** Research ** Publications ** Facilities ** Links

 

The JESSICA Project Homepage:                    

Related Project: Go to JESSICA2 Homepage.

 

Download:

JESSICA can be executed on Linux Redhat 6.2 (Kernel 2.2.14). Interested people please click here to fill in the information for downloading the source code.

 

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)

 

Related Links:

 

Main ** People ** Research ** Publications ** Facilities ** Links