IT용어위키



Distributed Shared Memory

Distributed Shared Memory (DSM) is a memory management architecture that enables multiple distributed systems to share a logical memory space, allowing processes on different machines to access shared data as if they were on a single system.

Overview

Distributed shared memory provides an abstraction that simplifies parallel and distributed computing by:

  • Providing a unified memory model: Applications access memory as if it were shared, even though it is physically distributed.
  • Reducing explicit message passing: Eliminates the need for developers to manually implement interprocess communication (IPC).
  • Ensuring consistency: Various memory consistency models define how updates to shared data are propagated.

Key Features

  • Transparency: Abstracts away the complexities of distributed memory management.
  • Scalability: Supports large-scale distributed applications.
  • Consistency Models: Defines how and when changes in memory are visible to other nodes.
  • Fault Tolerance: Can recover from failures by replicating memory across nodes.

Memory Consistency Models

Different consistency models define how updates to shared memory are observed:

Consistency Model Description Example Use Case
Strict Consistency Updates are immediately visible to all nodes. Ideal but impractical in real-world distributed systems.
Sequential Consistency All operations appear in some sequential order across all nodes. Shared-memory multiprocessors.
Causal Consistency Ensures that causally related memory updates appear in order. Event-driven systems.
Release Consistency Updates are visible after a synchronization operation (e.g., lock release). High-performance computing.

Implementation Approaches

Distributed shared memory can be implemented using different techniques:

  • Hardware-Based DSM: Implements shared memory at the hardware level (e.g., NUMA systems).
  • Software-Based DSM: Uses middleware or runtime systems to manage shared memory.
  • Hybrid DSM: Combines hardware and software techniques for efficiency.

Example DSM Systems

  • TreadMarks: A software DSM system supporting relaxed memory consistency.
  • Memcached: A distributed caching system that can function as a shared memory abstraction.
  • Spark RDDs: In-memory data sharing in distributed computing environments.
  • IBM Coherence: A distributed in-memory data grid.

Comparison with Other Memory Models

Feature Distributed Shared Memory Message Passing Centralized Shared Memory
Abstraction Level High Low High
Communication Method Implicit memory access Explicit message exchange Direct memory access
Performance Moderate High High
Fault Tolerance High (via replication) High (via redundancy) Low

Advantages

  • Simplifies parallel programming by abstracting memory distribution.
  • Reduces the need for explicit communication mechanisms.
  • Provides a scalable solution for distributed computing applications.

Limitations

  • Memory consistency overhead can degrade performance.
  • Higher latency compared to local shared memory due to network communication.
  • Complexity in ensuring fault tolerance and replication.

Applications

  • High-Performance Computing (HPC): Used in large-scale parallel computing systems.
  • Distributed Databases: Enables shared access to distributed in-memory storage.
  • Cloud Computing: Used in distributed caching and shared resource management.
  • Big Data Processing: Facilitates in-memory data sharing in frameworks like Apache Spark.

See Also


  출처: IT위키(IT위키에서 최신 문서 보기)
  * 본 페이지는 공대위키에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 공대위키에서 확인하세요!