분산 메모리

Distributed memory
3대의 컴퓨터의 분산 메모리 시스템 그림입니다.

컴퓨터 과학에서 분산 메모리는 각 프로세서가 자체 개인 메모리를 갖는 멀티프로세서 컴퓨터 시스템을 말합니다.계산 태스크는 로컬 데이터에서만 작동할 수 있으며 원격 데이터가 필요한 경우 계산 태스크는 하나 이상의 원격 프로세서와 통신해야 합니다.반면 공유 메모리 멀티프로세서는 모든 프로세서에서 사용되는 단일 메모리 공간을 제공합니다.프로세서는 성능 저하가 발생할 수 있으며 레이스 조건을 회피해야 한다는 점을 제외하고는 데이터가 어디에 있는지 알 필요가 없습니다.

분산 메모리 시스템에는 일반적으로 프로세서, 메모리 및 각 프로세서의 프로그램이 서로 상호 작용할 수 있는 어떤 형태의 상호 연결이 있습니다.인터커넥트는 포인트 포인트링크로 구성하거나 별도의 하드웨어로 스위칭네트워크를 제공할 수 있습니다.네트워크 토폴로지는 멀티프로세서 머신의 확장 방법을 결정하는 중요한 요소입니다.노드 간 링크는 표준 네트워크 프로토콜(: 이더넷), 맞춤형 네트워크 링크(예: 트랜스푸터) 또는 듀얼 포트 메모리를 사용하여 구현할 수 있습니다.

분산 메모리 시스템 프로그래밍

분산 메모리 시스템을 프로그래밍할 때 중요한 문제는 데이터를 메모리를 통해 어떻게 분배하느냐 하는 것입니다.해결된 문제에 따라 데이터는 정적으로 분산되거나 노드를 통해 이동할 수 있습니다.필요에 따라 데이터를 이동하거나 새 노드에 데이터를 미리 푸시할 수 있습니다.

예를 들어, 어떤 문제가 함수 f, g, h…(결과 h(g(f(x)))를 통해 데이터 x가 후속적으로 처리되는 파이프라인이라고 기술할 수 있다면, 이것은 g, fina를 연산하는 제2의 노드에 데이터를 전달하는 번째 노드에 데이터가 전송되는 분산 메모리 문제로 표현될 수 있다.h를 계산하는 세 번째 노드에 도달합니다.이것은 수축기 계산이라고도 합니다.

대부분의 연산이 로컬에서 이루어지면 데이터를 노드에 정적으로 유지할 수 있으며, 에지의 변경만 다른 노드에 보고해야 합니다.그 예로는 그리드를 사용하여 데이터를 모델링하고 각 노드가 대규모 그리드의 작은 부분을 시뮬레이션하는 시뮬레이션이 있습니다.반복할 때마다 노드는 모든 인접 노드에 새 에지 데이터를 알립니다.

분산 공유 메모리

마찬가지로 분산 공유 메모리에서 클러스터의 각 노드는 제한된 비공유 개인 메모리 외에 대용량 공유 메모리에 액세스할 수 있습니다.

공유 메모리 대 분산 메모리 대 분산 공유 메모리

  • (분산형) 공유 메모리의 장점은 모든 데이터를 검색할 수 있는 통합 주소 공간을 제공한다는 것입니다.
  • 분산 메모리의 장점은 레이스 조건을 배제하고 프로그래머가 데이터 분배에 대해 생각하게 하는 것입니다.
  • 분산형(공유형) 메모리의 장점은 알고리즘에 따라 확장 가능한 머신을 쉽게 설계할 수 있다는 것입니다.

분산 공유 메모리는 통신 메커니즘을 숨기지 않고 통신 지연 시간을 숨기지 않습니다.

「 」를 참조해 주세요.