분산 공유 메모리

Distributed shared memory

컴퓨터 과학에서 분산 공유 메모리(DSM)는 물리적으로 분리된 메모리를 단일 공유 주소 공간으로 처리할 수 있는 메모리 아키텍처의 한 형태입니다.「공유」라고 하는 용어는, 일원화된 메모리가 1개 있는 것이 아니고, 주소 공간이 공유되고 있는 것을 의미합니다.즉, 2개의 프로세서상의 같은 물리 주소가 [1]: 201 메모리내의 같은 장소를 가리킵니다.분산 글로벌 주소 공간(DGAS)은 광범위한 소프트웨어 및 하드웨어 구현 클래스의 용어이며, 클러스터 노드는 각 노드의 개인(공유되지 않음) 메모리 에 공유 메모리에 액세스할 수 있습니다.

개요

DSM FIGURE.jpg

분산 메모리 시스템은 종종 멀티 컴퓨팅이라고 불리며, 일반적인 상호 연결 네트워크에 의해 연결된 로컬 메모리 모듈을 가진 여러 개의 독립된 처리 노드로 구성됩니다.소프트웨어 DSM 시스템은 운영 체제 또는 프로그래밍 라이브러리로 구현할 수 있으며 기반이 되는 가상 메모리 아키텍처의 확장으로 간주할 수 있습니다.operating system에 실장되어 있는 경우, 이러한 시스템은 개발자에게 투과적입니다.즉, 기반이 되는 분산 메모리는 사용자로부터 완전히 숨겨집니다.이와는 대조적으로 라이브러리 또는 언어 수준에서 구현된 소프트웨어 DSM 시스템은 투명하지 않으므로 개발자는 일반적으로 이를 다르게 프로그래밍해야 합니다.단, 이러한 시스템은 DSM 시스템 구현에 대해 보다 휴대성이 높은 접근방식을 제공합니다.DSM 시스템은 물리적으로 분산된 메모리 시스템에 공유 메모리 모델을 구현한다.

DSM은 하드웨어뿐만 아니라 소프트웨어에서도 실행할 수 있습니다.하드웨어의 예로는 캐시 일관성 회선 및 네트워크인터페이스 컨트롤러가 있습니다.DSM을 실장하는 방법에는 다음 3가지가 있습니다.

  • 가상 메모리를 사용한 페이지 기반 접근법
  • 루틴을 사용하여 공유 변수에 액세스하는 공유 변수 접근법
  • 객체 기반 접근법, 객체 지향적 규율을 통해 공유 데이터에 이상적으로 접근

이점

  • 다수의 노드로 확장 가능
  • 메시지 전달이 숨겨집니다.
  • 복제 또는 프로세스로의 데이터 전송 없이 복잡하고 대규모 데이터베이스를 처리할 수 있습니다.
  • 멀티프로세서 시스템을 사용하는 것보다 일반적으로 저렴합니다.
  • 대용량 가상 메모리 공간 제공
  • 공통 프로그래밍 인터페이스로 인해 프로그램 이동성이 향상됨
  • 프로그래머가 프리미티브를 송수신하지 못하도록 보호

단점들

  • 일반적으로 비분산 공유 메모리보다 접근 속도가 느리다
  • 공유 데이터에 대한 동시 액세스에 대한 추가 보호 제공
  • 퍼포먼스 패널티가 발생할 수 있습니다.
  • 실제 생성되는 메시지에 대한 프로그래머 제어가 거의 없음
  • 프로그래머는 일관성 모델을 이해하고 올바른 프로그램을 작성해야 합니다.
  • DSM 실장은 비동기 메시지 패싱을 사용하기 때문에 메시지 패싱 실장보다 효율적일 수 없습니다.

메시지 전달과의 비교

메시지 전달 분산 공유 메모리
변수를 정리해야 합니다. 변수는 직접 공유됩니다.
통신비는 명백하다 통신비는 눈에 보이지 않는다.
프라이빗 주소 공간을 확보하여 프로세스를 보호 프로세스로 인해 데이터가 변경되어 오류가 발생할 수 있습니다.
프로세스가 동시에 실행되어야 합니다. 프로세스의 실행은 중복되지 않는 라이프 타임으로 이루어질 수 있습니다.

소프트웨어 DSM 시스템은 공유 메모리 영역을 다양한 방법으로 구성할 수도 있습니다.페이지 베이스의 어프로치에서는, 공유 메모리를 고정 사이즈의 페이지로 정리합니다.반대로 오브젝트 베이스 어프로치는 공유 메모리 영역을 가변 크기의 공유 가능한 오브젝트를 격납하기 위한 추상적인 공간으로서 편성한다.일반적으로 볼 수 있는 다른 구현에서는 태플 공간을 사용합니다.여기서 공유 단위는 태플입니다.

공유 메모리 아키텍처에는 메모리를 노드와 메인 메모리 간에 분산된 공유 부품으로 분리하거나 모든 메모리를 노드 간에 분산하는 작업이 포함됩니다.일관성 모델에 따라 선택된 일관성 프로토콜은 메모리 일관성을 유지합니다.

디렉토리 메모리의 일관성

메모리 일관성은 DSM을 구성하는 시스템이 시스템을 구성하는 메모리 전체에 걸쳐 노드 내의 데이터 블록 상태를 추적하고 유지할 수 있도록 하기 위해 필요합니다.디렉토리는 시스템을 이동하는 캐시 블록의 상태를 유지하는 메커니즘 중 하나입니다.

미국.

State diagram of a block of memory in a DSM. A block is "owned" if one of the nodes has the block in state EM.

기본 DSM은 디렉토리 [2]내의 특정 블록에 대해 노드 간에 적어도3개의 상태를 추적합니다.블록을 캐시되지 않은(U), 블록을 배타적으로 소유 또는 변경된 소유(EM)로 지시하는 상태 및 블록을 공유(S)로 지시하는 상태가 있습니다.블록이 디렉토리 조직에 들어오면 초기 노드에서 U에서 EM(소유 상태)으로 이행합니다.다른 노드가 블록을 읽기 시작하면 상태가 S로 이행할 수 있습니다.

시스템이 각 노드 전체에서 블록이 캐시되는 위치와 상태를 추적할 수 있도록 하려면 두 가지 주요 방법이 있습니다.홈 중심의 요청-응답은 홈 투 서비스 요청과 드라이브 상태를 사용하는 반면, 요청자 중심의 각 노드는 홈을 통해 자체 요청을 처리하고 관리할 수 있습니다.

가정 중심의 요청 및 응답

홈 중심 시스템에서 DSM은 홈 노드가 트랜잭션을 완료하기로 결정할 때까지(보통 홈이 요청에 대한 모든 응답 프로세서의 응답을 수신했을 때) 한 번에 하나의 트랜잭션만 발생하도록 함으로써 노드 간의 요청-응답 레이스를 처리할 필요가 없습니다.예를 들어 인텔의 QPI 홈소스 [3]모드가 있습니다.이 접근법의 장점은 구현이 간단하지만 홈 노드의 제한으로 인해 요청-응답 전략이 느리고 버퍼링된다는 것입니다.

요청자 중심의 요청 및 응답

요청자 중심 시스템에서는 DSM을 통해 노드가 홈을 통해 서로 자유롭게 대화할 수 있습니다.즉, 여러 노드가 트랜잭션을 시작할 수 있지만 일관성을 보장하기 위해서는 추가적인 고려사항이 필요합니다.예를 들어, 한 노드가 블록을 처리할 때 다른 노드로부터 해당 블록에 대한 요청을 수신하면 해당 노드가 해당 요청을 즉시 수행할 수 없음을 이니시에이터에 알리기 위해 NAck(Negative Acknowledgement)를 보냅니다.예를 들어 인텔의 QPI 스눕 소스 [3]모드가 있습니다.이 접근 방식은 빠르지만 자연스럽게 경주 조건을 방지하지 않고 더 많은 버스 트래픽을 발생시킵니다.

일관성 모델

DSM은 노드 간의 읽기 및 쓰기 순서 표시 방법에 대한 일관성을 유지하기 위해 시스템의 일관성 모델이라고 불리는 특정 규칙을 따라야 합니다.

프로세스 i에 대해 n개의 프로세스와 Mi 메모리 연산이 있으며 모든 연산이 순차적으로 실행된다고 가정합니다.(M1 + M2 + … + Mn)!/(M1! M2! … Mn!)은 연산의 인터리브가 가능하다고 결론지을 수 있습니다.이 결론의 문제는 인터리빙 조작의 정확성을 판단하는 것입니다.DSM의 메모리 일관성에 의해 허가되는 인터리빙이 정의됩니다.

Sequential invocations and responses in DSM

레플리케이션

복제 알고리즘에는 두 가지 유형이 있습니다.레플리케이션 읽기 및 라이트 레플리케이션.읽기 복제에서는 여러 노드를 동시에 읽을 수 있지만 한 노드만 쓸 수 있습니다.쓰기 복제에서는 여러 노드가 동시에 읽고 쓸 수 있습니다.쓰기 요청은 시퀀서에 의해 처리됩니다.공유 데이터의 복제는 일반적으로 다음과 같은 경향이 있습니다.

  • 네트워크 트래픽 감소
  • 병렬화 촉진
  • 페이지 폴트 감소

그러나 일관성과 일관성을 유지하는 것은 더욱 어려워질 수 있습니다.

릴리스 및 엔트리 일관성

  • 릴리스 일관성: 프로세스가 크리티컬섹션을 종료하면 변수의 새로운 값이 모든 사이트에 전파됩니다.
  • 엔트리의 일관성: 프로세스가 중요한 섹션에 들어가면 공유 변수의 값이 자동으로 업데이트됩니다.
    • 보기 기반 일관성: 중요한 섹션의 공유 변수가 시스템에 의해 자동으로 감지되는 것을 제외하고 엔트리 일관성의 변형입니다.뷰 베이스의 일관성의 실장은 클러스터 컴퓨터의 MPI에 필적하는 퍼포먼스를 가진 VODCA입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Patterson, David A.; Hennessy, John L. (2006). Computer Architecture: A Quantitative Approach (4th ed.). Burlington, Massachusetts: Morgan Kaufmann. ISBN 978-01-2370490-0.
  2. ^ Solihin, Yan (2015). Fundamentals of Parallel Multicore Architecture. Boca Raton, Florida: Chapman and Hall/CRC. pp. 339–340. ISBN 9781482211184.
  3. ^ a b Sorin, Daniel J.; Hill, Mark D.; Wood, David A. (2011). A Primer on Memory Consistency and Cache Coherence. Morgan & Claypool. p. 174. ISBN 978-16-0845564-5.

외부 링크