Algorithms for mutual exclusion
Algorithms for mutual exclusion
Munin: distributed shared memory based on type-specific memory coherence
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
NUMA policies and their relation to memory architecture
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Distributed Shared Memory: A Survey of Issues and Algorithms
Computer - Distributed computing systems: separate resources acting as one
The SPLASH-2 programs: characterization and methodological considerations
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
High performance messaging on workstations: Illinois fast messages (FM) for Myrinet
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
ParC—an extension of C for shared memory parallel processing
Software—Practice & Experience
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
Scope consistency: a bridge between release consistency and entry consistency
Proceedings of the eighth annual ACM symposium on Parallel algorithms and architectures
Lazy release consistency for distributed shared memory
Lazy release consistency for distributed shared memory
Memory consistency and event ordering in scalable shared-memory multiprocessors
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
Dag-Consistent Distributed Shared Memory
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
TreadMarks: distributed shared memory on standard workstations and operating systems
WTEC'94 Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
Hi-index | 0.00 |
In this work we propose and implement a new variant of the well-known write invalidate protocol called “Y-invalidate.” Whereas the former protocol required that every copy of a page be invalidated every time that page is updated, our variant invalidates a copy of a page at process A only at the next synchronization point which is relevant to A and or if the copy was modified by the owner's process after the page was copied to A. We thus avoid invalidating copies of pages that were modified but never read after modification, and avoid, of course, the associated overhead. Y-Invalidate is basically a weak-consistency protocol. Its main advantage is that it implements weak consistency without the need to “merge” copies of a page that were updated in different machines. To the best of our knowledge, this is the first variant of weak consistency protocols which does not “merge” multiple copies of pages. Unlike other variants of weak consistency, Y-invalidate supports implicit synchronization points in the program by invalidating copies of shared memory pages that are referenced by while-loops. In this way, Y-invalidate approximates strict consistency. The Y-invalidate protocol was implemented in the ParC system, which is a powerful parallel extension of the C language. The ParC compiler was modified to detect some of the implicit synchronization points in the source code. Experimental results show significant improvement compared to both the traditional write-invalidate protocol and weak consistency.