Lazy release consistency for software distributed shared memory
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
Techniques for reducing consistency-related communication in distributed shared-memory systems
ACM Transactions on Computer Systems (TOCS)
Shasta: a low overhead, software-only approach for supporting fine-grain shared memory
Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
Putting pointer analysis to work
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Performance evaluation of the Orca shared-object system
ACM Transactions on Computer Systems (TOCS)
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Transparently obtaining scalability for Java applications on a cluster
Journal of Parallel and Distributed Computing - Special Issue on Java on Clusters
JESSICA: Java-enabled single-system-image computing architecture
Journal of Parallel and Distributed Computing - Special Issue on Java on Clusters
Core semantics of multithreaded Java
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Runtime optimizations for a Java DSM implementation
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Java Virtual Machine Specification
Java Virtual Machine Specification
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
A Survey of Distributed Garbage Collection Techniques
IWMM '95 Proceedings of the International Workshop on Memory Management
Uniprocessor Garbage Collection Techniques
IWMM '92 Proceedings of the International Workshop on Memory Management
Indirect Reference Listing: A Robust Distributed GC
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
Executing Java threads in parallel in a distributed-memory environment
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
Efficiently Adapting to Sharing Patterns in Software DSMs
HPCA '98 Proceedings of the 4th International Symposium on High-Performance Computer Architecture
cJVM: A Single System Image of a JVM on a Cluster
ICPP '99 Proceedings of the 1999 International Conference on Parallel Processing
Home-based shared virtual memory
Home-based shared virtual memory
The architecture of the DecentVM: towards a decentralized virtual machine for many-core computing
Virtual Machines and Intermediate Languages
Hi-index | 0.00 |
The popularity of Java and recent advances in compilation and execution technology for Java are making the language one of the preferred ones in the field of high-performance scientific and engineering computing. A distributed Java Virtual Machine supports transparent parallel execution of multi-threaded Java programs on a cluster of computers. It provides an alternative platform for high-performance scientific computations. In this paper, we present the design of a global object space for a distributed JVM. It virtualizes a single Java object heap across machine boundaries to facilitate transparent object accesses. We leverage runtime object connectivity information to detect distributed shared objects (DSOs) that are reachable from threads at different nodes to facilitate efficient memory management in the distributed JVM. Based on the concept of DSO, we propose a framework to characterize object access patterns, along three orthogonal dimensions. With this framework, we are able to effectively calibrate the runtime memory access patterns and dynamically apply optimized cache coherence protocols to minimize consistency maintenance overhead. The optimization devices include an object home migration method that optimizes the single-writer access pattern, synchronized method migration that allows the execution of a synchronized method to take place remotely at the home node of its locked object, and connectivity-based object pushing that uses object connectivity information to optimize the producer--consumer access pattern. Several benchmark applications in scientific computing have been tested on our distributed JVM. We report the performance results and give an in-depth analysis of the effects of the proposed adaptive solutions.