Download:
|
by Matthew J. Zekauskas, Wayne A. Sawdon, Brian N. Bershad
In Proceedings of the First Symposium on Operating Systems Design and Implementation
http://www.cs.washington.edu/homes/bershad//osdi94midway.ps
Add To MetaCart
Abstract:
Most software-based distributed shared memory (DSM) systems rely on the operating system's virtual memory interface to detect writes to shared data. Strategies based on virtual memory page protection create two problems for a DSM system. First, writes can have high overhead since they are detected with a page fault. As a result, a page must be writtenmany times to amortize the cost of that fault. Second, the size of a virtual memory page is too big to serve as a unit of coherency, inducing false sharing. Mechanisms to handle false sharing can increase runtime overhead and may cause data to be unnecessarily communicated between processors. In this paper, we present a new method for write detection that solves these problems. Our method relies on the compiler and runtime system to detect writes to shared data without invoking the operating system. We measure and compare implementations of a distributed shared memory system using both strategies, virtual memory and compiler /runtime, running a range of applications on a small scale distributed memory multicomputer. We show that the new method has low average write latency and supports fine-grained sharing with low overhead. Further, we show that the dominant cost of write detection with either strategy is due to the mechanism used to handle fine-grain sharing. 1
Citations
|
1746
|
Time, clocks, and the ordering of events in a distributed system
– Lamport
- 1978
|
|
847
|
Memory coherence in shared virtual memory systems
– Li, Hudak
- 1989
|
|
705
|
SPLASH: Stanford Parallel Applications for Shared Memory
– Singh, Weber, et al.
- 1992
|
|
637
|
Memory consistency and event ordering in scalable shared-memory multiprocessors
– Gharachorloo, Lenoski, et al.
- 1990
|
|
578
|
Efficient software-based fault isolation
– Wahbe, Lucco, et al.
- 1993
|
|
530
|
Implementation and performance of Munin
– Carter, Bennett, et al.
- 1991
|
|
483
|
Fine-grained mobility in the Emerald system
– Jul, Levy, et al.
- 1988
|
|
477
|
TreadMarks: Distributed shared memory on standard workstations and operating systems
– Keleher, Dwarkadas, et al.
- 1994
|
|
422
|
Lazy release consistency for software distributed shared memory
– Keleher, Cox, et al.
- 1992
|
|
360
|
The Midway distributed shared memory system
– Bershad, Zekauskas, et al.
- 1993
|
|
323
|
Tempest and Typhoon: User-Level Shared Memory
– Reinhardt, Larus, et al.
- 1994
|
|
251
|
Mach: A New Kernel Foundation for UNIX Development
– Accetta, Baron, et al.
- 1986
|
|
213
|
The Amber system: Parallel programming on a network of multiprocessors
– Chase, Amador, et al.
- 1989
|
|
166
|
Fine-Grain Access Control for Distributed Shared Memory
– Schoinas, Falsafi, et al.
- 1994
|
|
162
|
Virtual Memory Primitives for User Programs
– Appel, Li
- 1991
|
|
134
|
The Duality of Memory and Communication in the Implementation of a Multiprocessor Operating System
– Young, Tevanian, et al.
- 1987
|
|
121
|
Adaptive software cache management for distributed shared memory architectures
– Bennett, Carter, et al.
- 1990
|
|
105
|
A unified formalization of four shared-memory models
– Adve, Aggarwal
- 1993
|
|
97
|
The design and evaluation of a shared object system for distributed memory machines
– Scales, Lam
- 1994
|
|
95
|
Memory Consistency Models
– Mosberger
- 1993
|
|
71
|
Hardware and Software Support for Efficient Exception Handling
– Thekkath, Levy
- 1994
|
|
50
|
Protection traps and alternatives for memory management of an object-or iented language
– Moss
- 1993
|
|
35
|
Efficient Data Breakpoints
– Wahbe
- 1992
|
|
29
|
The Mether system: A distributed shared memory for SunOS 4.0
– Minnich, Farber
- 1989
|
|
11
|
Exposed buffering and subdatagram flow control for ATM LANs
– Brustoloni
- 1994
|
|
9
|
Supporting structured shared virtual memory under Mach
– Bryant, Carini, et al.
- 1991
|
|
3
|
Lazy Release Consistencyfor Software Distributed SharedMemory
– Keleher, Cox, et al.
- 1992
|
|
1
|
Orca: A Languange For Parallel Programming of Distributed Systems
– Bal, Kaashoek, et al.
- 1992
|