2003 · 14 citations · 13 references
Cluster ComputingHeterogeneous ComputingEngineeringComputer ArchitectureSoftware EngineeringDistributed JvmSoftware AnalysisMigration TransparencyHardware VirtualizationJava ThreadsDistributed EnvironmentParallel ComputingComputer EngineeringComputer ScienceReal-time JavaRuntime SystemDistributed ComputingProgram AnalysisCloud ComputingParallel ProgrammingSystem SoftwareVirtual Machine
A distributed JVM on a cluster can provide a high-performance platform for running multithreaded Java applications transparently. Efficient scheduling of Java threads among cluster nodes in a distributed JVM is desired for maintaining a balanced system workload so that the application can achieve maximum speedup. We present a transparent thread migration system that is able to support high-performance native execution of multi-threaded Java programs. To achieve migration transparency, we perform dynamic native code instrumentation inside the JIT compiler. The mechanism has been successfully implemented and integrated in JESSICA2, a JIT-enabled distributed JVM, to enable automatic thread distribution and dynamic load balancing in a cluster environment. We discuss issues related to supporting transparent Java thread migration in a JIT-enabled distributed JVM, and compare our solution with previous approaches that use static bytecode instrumentation and JVMDI. We also propose optimizations including dynamic register patching and pseudo-inlining that can reduce the runtime overhead incurred in a migration act. We use measured experimental results to show that our system is efficient and lightweight.
13
Jack Dongarra, Hans-Werner Meuer, Erich Strohmaier · 1997 · 667 citations
Cluster Computing, Open Source Supercomputing, Exascale Computing +9
The Jalapeño dynamic optimizing compiler for Java
Michael Burke, Jong-Deok Choi, Stephen J. Fink et al. · 1999 · 273 citations
cJVM: a single system image of a JVM on a cluster
Yariv Aridor, Michael Factor, Avi Teperman · 2003 · 163 citations