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.
Project Objectives
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.
Publications:
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.
Related Projects:
Contact: Dr. Cho-Li Wang (clwang@cs.hku.hk) or Mr. King Tin Lam (ktlam@cs.hku.hk)
Updated: Nov. 29, 2009