distributed shared memory architecture
**Distributed Shared Memory Architecture** — DSM systems provide a shared memory abstraction over physically distributed memory nodes, enabling transparent data access across networked processors without explicit message passing.
**Core DSM Concepts** — The foundational principles of distributed shared memory include:
- **Virtual Address Space Mapping** — a unified virtual address space is projected across all participating nodes, allowing processes to reference remote memory locations as if they were local
- **Page-Based DSM** — memory is divided into pages that migrate or replicate between nodes on demand, with the operating system intercepting page faults to fetch remote pages transparently
- **Object-Based DSM** — shared data is organized as objects with well-defined access methods, enabling finer-grained sharing and reducing false sharing compared to page-based approaches
- **Hardware vs Software DSM** — hardware implementations like SGI Origin use directory-based protocols in custom interconnects, while software DSM systems such as TreadMarks operate at the OS or library level
**Coherence and Consistency in DSM** — Maintaining data correctness across distributed nodes requires:
- **Invalidation Protocols** — when a node modifies shared data, other copies are invalidated to prevent stale reads, triggering fresh fetches on subsequent access
- **Update Protocols** — modifications are broadcast to all nodes holding copies, reducing access latency at the cost of higher network bandwidth consumption
- **Release Consistency** — synchronization points define when updates become visible, relaxing strict ordering to improve performance while preserving program correctness
- **Lazy Release Consistency** — updates are propagated only at synchronization acquisition points, minimizing unnecessary data transfers between nodes
**Scalability and Performance Challenges** — DSM systems face inherent distributed computing limitations:
- **False Sharing** — when unrelated variables share the same page or cache line, unnecessary coherence traffic degrades performance significantly
- **Thrashing** — pages may bounce rapidly between nodes under contention, creating severe performance bottlenecks that require careful data placement strategies
- **NUMA Awareness** — non-uniform memory access latencies demand intelligent data placement and thread scheduling to minimize remote memory references
- **Directory Overhead** — tracking which nodes hold copies of each page requires directory structures that grow with system scale
**Modern DSM Applications** — Contemporary systems leverage DSM concepts in evolved forms:
- **Partitioned Global Address Space** — languages like UPC and Chapel provide a global address space with locality awareness, combining DSM convenience with explicit performance control
- **Remote Direct Memory Access** — RDMA-capable networks enable zero-copy remote memory operations, providing DSM-like functionality with hardware-level efficiency
- **Disaggregated Memory** — modern data center architectures separate compute and memory resources, using DSM principles to create flexible resource pools
**Distributed shared memory architecture bridges the programming simplicity of shared memory with the scalability of distributed systems, remaining foundational to modern PGAS languages and disaggregated computing paradigms.**