Inheritance and synchronization with enabled-sets
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)
The definition of Standard ML
Emerald: a general-purpose programming language
Software—Practice & Experience
Implementation and performance of Munin
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Orca: A Language for Parallel Programming of Distributed Systems
IEEE Transactions on Software Engineering
Object-oriented concurrent reflective languages can be implemented efficiently
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
The shared regions approach to software cache coherence on multiprocessors
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
CRL: high-performance all-software distributed shared memory
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
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
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
Fast Messages: Efficient, Portable Communication for Workstation Clusters and MPPs
IEEE Parallel & Distributed Technology: Systems & Technology
View Caching: Efficient Software Shared Memory for Dynamic Computations
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Improving Release-Consistent Shared Virtual Memory using Automatic Update
HPCA '96 Proceedings of the 2nd IEEE Symposium on High-Performance Computer Architecture
An Efficient Multicast Protocol for Content-Based Publish-Subscribe Systems
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
Efficient replicated method invocation in Java
Proceedings of the ACM 2000 conference on Java Grande
Efficient Java RMI for parallel programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Detecting Read-Only Methods in Java
LCR '00 Selected Papers from the 5th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Efficient Object Caching for Distributed Java RMI Applications
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
Exploiting high-level coherence information to optimize distributed shared state
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
HPDC '02 Proceedings of the 11th IEEE International Symposium on High Performance Distributed Computing
The ABC adaptive fusion architecture
Proceedings of the 4th international workshop on Middleware for Pervasive and Ad-Hoc Computing (MPAC 2006)
Mechanisms for object caching in distributed applications using Java RMI
Software—Practice & Experience
DOLCLAN: middleware support for peer-to-peer distributed shared objects
DAIS'07 Proceedings of the 7th IFIP WG 6.1 international conference on Distributed applications and interoperable systems
A segment-based DSM supporting large shared object space
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Applying model fragment copy-restore to build an open and distributed MDA environment
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
Hi-index | 0.00 |
Object-based parallel and distributed applications are becoming increasingly popular, driven by the programmability advantages of component technology and a flat shared-object space. However, the flat shared-object space introduces a performance challenge: applications that rely on the transparent coherent caching of objects achieve high performance only on tightly coupled parallel machines. In distributed environments, the overheads of object caching force application designers to choose other solutions. Consequently, most applications sacrifice programmability, relying instead on either the explicit coherence management of cached objects, or on vastly different middleware abstractions such as multicast and events.In this paper, we describe object views — language support for efficient object caching in parallel and distributed computations. Object views specify restrictions on how computation threads can use an object, providing the underlying implementation with information about the potential side effects of object access, and thereby enabling construction of scalable, low-overhead caching protocols customized to application requirements. We present extensions to the Java programming language for expressing object views, and describe the design and implementation of a translator and run-time system for executing view-augmented Java programs on a distributed cluster of workstations. Experimental results based on a shared whiteboard application demonstrate that view-based object caching can achieve performance superior to multicast- and event-based implementations, while retaining essentially a shared object interface.