Java is by far the most popular programming language today. Its popularity is in large part due to the Java Virtual Machine (JVM) which has made millions of computing devices on the face of the earth Java-ready. This project is on the design and implementation of a Distributed Java Virtual Machine (DJVM) which is to turn a distributed system into a powerful Java-ready computer. With a DJVM, multiple threads in a single Java program can be executed in parallel to exploit extreme computation power. We target at an advanced DJVM design setting out to solve two problems that have remained open after years of DJVM research: (1) limitation on the usable memory space; (2) the lack of an effective load model for global thread scheduling. Specifically, we propose a huge global object space (HGOS) design for implementing a large Java heap in a DJVM that can break the 4-gigabyte limit in 32-bit commodity clusters. We also propose devising a more accurate thread-centric load model which can facilitate global thread scheduling through thread migration. The resulting system will be most suitable for large-scale scientific applications having a huge demand for memory, such as bio-computing, particle simulation, and commercial data mining.
Fast wide address translation: As the hardware only supports a 32-bit addressing space, we need a fast software solution to translate the wide references to 32-bit references. An extended pointer swizzling method using a page faulting mechanism will be studied for achieving fast wide address translation and to avoid unnecessary object checking overheads.
HGOS-aware cache coherence protocol. As we support large objects that could be allocated across cluster nodes, new cache coherence protocol catered for the HGOS will be developed. Efficient whole object and segmented object caching mechanisms in line with the Java memory model will be explored for efficient object accesses in a cluster environment.
HGOS-directed workload model. We will investigate and propose a thread-centric load model to capture the migration benefits under the HGOS. The load model should reflect the explicit communication cost in accessing remote objects and the implicit cost embodied in the cache coherence protocol. A runtime profiling method using JIT-compilation techniques will be used to analyze thread stack contexts for approximating the workload of a thread and its migration benefits.
New thread migration policies: Migration policies will be devised based on the proposed workload model for choosing threads for migration to achieve maximum profits. We allow thread migration to take place when (1) thread migration can reduce the object access cost; (2) the workload among the cluster nodes is imbalanced, or (3) new nodes are added to participate in the computation.
Yang Luo, King Tin Lam, Cho-Li Wang, "Lightweight Adaptive Sampling-Based Profiling Techniques for Optimizing the Distributed JVM Runtime," submitted to 24th IEEE International Parallel and Distributed Processing Symposium (IPDPS2010), April 19-23, ATLANTA, USA.
Yang Luo, King Tin Lam, Cho-Li Wang, "Path-Analytic Distributed Object Prefetching", The 10th International Symposium on Pervasive Systems, Algorithms and Networks (I-SPAN 2009), Dec. 14-16, 2009, Kao-Hsiung, Taiwan. (pdf)
King Tin Lam, Cho-Li Wang, Web Application Server Clustering: the Distributed JVM Approach, Handbook of Research on Scalable Computing Technologies, IGI Global, pp.658-681 (Chapter 28), July 2009.
King Tin Lam, Yang Luo, Cho-Li Wang, A Performance Study of Clustering Web Application Servers with Distributed JVM, The 14th IEEE International Conference on Parallel and Distributed Systems (ICPADS'08), Melbourne, Australia, Dec. 8-10, 2008. (pdf)
Yang Luo, Performance Modeling and Load Balancing for Distributed Java Virtual Machine, M.Phil Thesis, 2008.
Contact: Dr. Cho-Li Wang (email@example.com) or Mr. King Tin Lam (firstname.lastname@example.org)
Updated: Nov. 29, 2009