Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Distributed garbage collection using reference counting
Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
An efficient garbage collection scheme for parallel computer architectures
Volume II: Parallel Languages on PARLE: Parallel Architectures and Languages Europe
Design of the opportunistic garbage collector
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Memory coherence in shared virtual memory systems
ACM Transactions on Computer Systems (TOCS)
LOOM: large object-oriented memory for Smalltalk-80 systems
Readings in object-oriented database systems
Implementation and performance of Munin
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
The ObjectStore database system
Communications of the ACM
SPLASH: Stanford parallel applications for shared-memory
ACM SIGARCH Computer Architecture News
Lazy release consistency for software distributed shared memory
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
Parallel Programming Using Shared Objects and Broadcasting
Computer - Special issue on sharing: high performance at low cost
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
QuickStore: a high performance mapped object store
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Fine-grain access control for distributed shared memory
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
Techniques for reducing consistency-related communication in distributed shared-memory systems
ACM Transactions on Computer Systems (TOCS)
The SPLASH-2 programs: characterization and methodological considerations
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
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
Measuring the cost of storage management
Lisp and Symbolic Computation
Quantifying the performance differences between PVM and TreadMarks
Journal of Parallel and Distributed Computing
Tradeoffs between false sharing and aggregation in software distributed shared memory
PPOPP '97 Proceedings of the sixth ACM SIGPLAN symposium on Principles and practice of parallel programming
HAC: hybrid adaptive caching for distributed storage systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
Fast, effective code generation in a just-in-time Java compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Lightweight object-oriented shared variables for distributed applications on the Internet
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The design, implementation, and evaluation of Jade
ACM Transactions on Programming Languages and Systems (TOPLAS)
MultiView and Millipage — fine-grain sharing in page-based DSMs
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
The Jalapeño dynamic optimizing compiler for Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Weak ordering—a new definition
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
Memory consistency and event ordering in scalable shared-memory multiprocessors
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
Unification-based pointer analysis with directional assignments
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Runtime optimizations for a Java DSM implementation
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
LEMMA: A Distributed Shared Memory with Global and Local Garbage Collection
IWMM '95 Proceedings of the International Workshop on Memory Management
Incremental Multi-threaded Garbage Collection on Virtual Shared Memory Architectures
IWMM '92 Proceedings of the International Workshop on Memory Management
A Performance Study of Alternative Object Faulting and Pointer Swizzling Strategies
VLDB '92 Proceedings of the 18th International Conference on Very Large Data Bases
The Aleph Toolkit: Support for Scalable Distributed Shared Objects
CANPC '99 Proceedings of the Third International Workshop on Network-Based Parallel Computing: Communication, Architecture, and Applications
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Comparative Evaluation of Fine- and Coarse-Grain Approaches for Software Distributed Shared Memory
HPCA '99 Proceedings of the 5th International Symposium on High Performance Computer Architecture
Towards Web/Java-Based High Performance Distributed Computing--an Evolving Virtual Machine
HPDC '96 Proceedings of the 5th IEEE International Symposium on High Performance Distributed Computing
Dynamically Controlling False Sharing in Distributed Shared Memory
HPDC '96 Proceedings of the 5th IEEE International Symposium on High Performance Distributed Computing
A DATA FLOW ARCHITECTURE WITH IMPROVED ASYMPTOTIC
A DATA FLOW ARCHITECTURE WITH IMPROVED ASYMPTOTIC
Java Access to Numerical Libraries
Java Access to Numerical Libraries
The region trap library: handling traps on application-defined regions of memory
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Handles revisited: optimising performance and memory costs in a real-time collector
Proceedings of the international symposium on Memory management
Hi-index | 0.00 |
We present a new run-time system that supports object sharing in a distributed system. The key insight in this system is that a handle-based implementation of such a system enables efficient and transparent sharing of data with both fine- and coarse-grained access patterns. In addition, it supports efficient execution of garbage-collected programs. In contrast, conventional distributed shared memory (DSM) systems are limited to providing only one granularity with good performance, and have experienced difficulty in efficiently supporting garbage collection. A safe language, in which no pointer arithmetic is allowed, can transparently be compiled into a handle-based system and constitutes its preferred mode of use. A programmer can also directly use a handle-based programming model that avoids pointer arithmetic on the handles, and achieve the same performance but without the programming benefits of a safe programming language. This new run-time system, DOSA (Distributed Object Sharing Architecture), provides a shared object space abstraction rather than a shared address space abstraction. The key to its efficiency is the observation that a handle-based distributed implementation permits VM-based access and modification detection without suffering false sharing for fine-grained access patterns. We compare DOSA to TreadMarks, a conventional DSM system that is efficient at handling coarse-grained sharing. The performance of fine-grained applications and garbage-collected applications is considerably better than in TreadMarks, and the performance of coarse-grained applications is nearly as good as in TreadMarks. Inasmuch as the performance of such applications is already good in TreadMarks, we consider this an acceptable performance penalty.