Cooperative shared memory
- 1 November 1993
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 11 (4), 300-318
- https://doi.org/10.1145/161541.161544
Abstract
We believe the paucity of massively parallel, shared-memory machines follows from the lack of a shared-memory programming performance model that can inform programmers of the cost of operations (so they can avoid expensive ones) and can tell hardware designers which cases are common (so they can build simple hardware to optimize them). Cooperative shared memory, our approach to shared-memory design, addresses this problem. Our initial implementation of cooperative shared memory uses a simple programming model, called Check-In/Check-Out (CICO), in conjunction with even simpler hardware, called Dir 1 SW. In CICO, programs bracket uses of shared data with a check_in directive terminating the expected use of the data. A cooperative prefetch directive helps hide communication latency. Dir 1 SW is a minimal directory protocol that adds little complexity to message-passing hardware, but efficiently supports programs written within the CICO model.Keywords
This publication has 12 references indexed in Scilit:
- The DASH prototype: Logic overhead and performanceIEEE Transactions on Parallel and Distributed Systems, 1993
- The Stanford Dash multiprocessorComputer, 1992
- The Scalable Coherent Interface and related standards projectsIEEE Micro, 1992
- Algorithms for scalable synchronization on shared-memory multiprocessorsACM Transactions on Computer Systems, 1991
- Paradigm: a highly scalable shared-memory multicomputer architectureComputer, 1991
- Software prefetchingPublished by Association for Computing Machinery (ACM) ,1991
- Cache considerations for multiprocessor programmersCommunications of the ACM, 1990
- Trap architectures for Lisp systemsPublished by Association for Computing Machinery (ACM) ,1990
- Multis: A New Class of Multiprocessor ComputersScience, 1985
- A virtual machine emulator for performance evaluationCommunications of the ACM, 1980