Systems Research Group

Department of Computer Science, The University of Hong Kong



JESSICA2 (Java-Enabled Single-System-Image Computing Architecture version 2) is a distributed Java Virtual Machine (DJVM) to support parallel execution of multithreaded Java applications in a networked cluster environment. Implemented as a cluster middleware at the Java virtual machine level for realizing single system image, JESSICA2, makes the whole cluster look as a single machine running a single JVM. With JESSICA2 DJVM, a single Java program can span multiple computing nodes, and enjoy extreme computation power, huge memory space, and strong I/O capabilities.

JESSICA2 achieves high performance computing by exploiting high degree of thread-level parallelism on a large number of cluster nodes and thread execution under full-speed JIT compilation mode. To achieve better resource utilization, JESSICA2 implemented a lightweight thread migration mechanism embedded in the JIT compiler. Java threads can freely move across node boundaries to make better use of computing resources and achieve more balanced workload. The system also implemented a cluster-wide object heap which allows the distributed Java threads to access data objects and perform I/O operations from any cluster node. All the thread scheduling, object sharing and synchronization supports are embedded seamlessly at the JVM level without the involvement of the programmers. Such a friendly environment allows programmers to do initial parallelization, while the SSI middleware will take care the rest (e.g., global thread scheduling through thread migration, automatic object relocation and consistency maintenance, and necessary I/O redirection).

Our solutions require no source code modification of Java programs nor bytecode instrumentation. Our implementation follows the Java language specification and there are no new APIs or language modifications introduced. With JESSICA2, any existing Java program that can run on a single-node JVM can run on a cluster without any modification. Our approach make it possible for ordinary programmers to realize high-performance computing on clusters without the need to learn those complicated parallel languages or runtime supports, such as Parallel Virtual Machine (PVM), MPI, or software Distributed Shared Memory (DSM), which usually require explicit data partition for different processors to achieve parallel execution.

JESSICA2 is based on Kaffe open VM 1.0.6. It supports Linux kernels from 2.2 to 2.6 on i386 platforms. Yes, it supports latest Linux Fedora Core 3. Read a brief history of JESSICA project written by Zhu Wenzhang (html).

New projects:

  • JESSICA3 (9/2006-4/2009) : aims at supporting memory-intensive applications (e.g., data mining, search engine, computational biology, and scientific applications) on commodity clusters. 
  • JESSICA4 (9/2009-8/2011): a new version of JESSICA based on software transactional memory. JESSICA4 will be ported on our new multicore cluster. We are looking for new research students to join this project (See JESSICA4 Recruit).


  •  Dr. C.L. Wang gave a keynote "Towards Easy-to-use PGAS Parallel Programming – The Distributed JVM Approach" at The Third International Joint Conference on Computational Sciences and Optimization (CSO 2010), Huangshan Anhui (安徽黄山), China.  (PPT) (New RayTraching Video, 41MB)

  • Awarded RGC Project : Adaptive Software Support for Fine-Grained Distributed Object Sharing on Multicore Clusters  (abstract). (09/2009/08/2011)

  • Awarded RGC Project : An Advance Distributed Java Virtual Machine on Commodity Clusters for High-Performance Memory-Intensive Computing (支持高内存需求機群計算的分佈式Java虛擬機), 09/2006-08/2008, PI: Dr. C.L. Wang, Co-PI: Dr. F.C.M. Lau. (Abstract) (Recruit new members)

  •  A new JESSICA2 homepage maintained by Dr. Zhu Wenzhang: We have made JESSICA2 an open source software and it is free for download under GNU General Public License since May 2005.

  •  Deploying Enterprise Web Services by Distributed JVM Approach (Tomcat on JESSICA2), by King Tin Lam (M.Sc Project)

  • Dr. C.L. Wang presented JESSICA2 project at Shangdong U. Jinan, China, (山东大学计算机科学与技术学院) May 19, 2005. (photo)

  • Dr. C.L. Wang gave a keynote speech "High Performance Computing on Clusters: The Distributed JVM Approach," at the 11th Workshop on Compiler Techniques for High-Performance Computing (CTHPC2005),  March 17-18, 2005, Tunghai University,  Taiwan. (PPT)

  • Dr. Francis Lau gave a keynote speech “Towards a Single System Image for High-Performance Java” at the 5th Workshop on High Performance Scientific and Engineering Computing with Applications (HPSECA-03), in conjunction with ICPP 2003, Kaohsiung, Taiwan, October 6-9, 2003.(PPT 1.3M).

  • Weijian and C.L. Wang presented papers in Cluster2004 : photo

  • Dr. C.L. Wang's talk at Hong Kong Java User Group (HKJUG) (Dec. 18, 2002) (PPT)

  • Video: Parallel Ray-tracing on JESSICA2 (avi file, size=9.725 MB)- March 15, 2004 created.

Last Modification: Jan. 27, 2010, by Dr. C.L. Wang