병렬컴퓨터의 분류 – 시스템 구성

최근 병렬 컴퓨터의 공성능화를 위하여 여러 가지 형태의 시스템들이 구성되고 있다. 그들은 시스템의 크기, 용도, 사용자 환경, 비용, 프로세서간 통신 방버 및 OS의 수 등에 있어서 매우 다양하다. 이러한 시스템들은 프로세서, 기억장치 및 상호 연결망을 어떻게 구성하는지에 따라 일반적으로 아래와 같이 분류되고 있다.

  • 대칭적 다중프로세서(Symmetric Multiprocessors: SMP)
  • 대규모 병렬프로세서(Massively Parallel Processors: MPP)
  • 캐쉬-일관성 NUMA(Cache-Coherent NUMA: CC-NUMA)
  • 분산 시스템(Distributed Systems)
  • 클러스터 컴퓨터(Cluster Computer)

어디선가 많이 본 시스템 구성들이 있을 것이다. 그것들을 일단 간단하게 설명하려한다.

SMP는 대략 2~64개의 프로세서들로 구성되는 중대형급 단일 시스템으로서, 일반적으로 완전-공유 구조를 가진다. 즉, 프로세서들이 시스템 내의 모든 자원들을 공유한다. 그리고 시스템 내에는 하나의 OS만 존재하며, 어느 프로세서든 공유 기억장치에 적재된 OS 코드를 수행할 수 있다. 대칭적이라는 명칭이 의미하듯, 모든 프로세서들은 동등한 권한으로 자원들을 공유하고, OS를 수행하며, 자신을 위한 작업 스케쥴링도 직접 수행한다. 이 분류에 속하는 시스템들의 주요 특징들을 정리하면 아래와 같다.

  • 능력이 비슷한 다수의 프로세서들로 구성된다
  • 프로세서들은 주기억장치와 IO 장치들을 공유하고, 버스 혹은 간단한 연결 방식에 의해 상호연결된다.
  • 모든 프로세서들은 동등한 권한을 가지며, 같은 수준의 기능들을 수행할 수 있다.
  • 프로세서들간의 통신은 공유-기억장치를 통하여 이루어진다.
  • 작업 스케줄링 및 파일/데이터 수준에서의 프로그램들간 상호 작용은 하낭의 OS에 의해 통합적으로 지원된다.
  • 상호연결망의 병목 현상으로 인하여 시스템 크기에 한계가 있다.

MPP는 주로 무공유 구조(shared-nothing architecture)를 기반으로 구성되는 대규모 병렬처리시스템이다. 이 시스템은 고속의 상호연결망을 통하여 서로 연결되는 수백 혹은 수천 개의 프로세싱 노드들로 이루어진다. 각 노드는 일반적으로 간단한 구조의 프로세서와 기억장치로 구성되며, 여러 개의 프로세서들이 하나의 노드에 포함되기도 한다. 또한 노드들 중의 일부분은 디스크와 같은 주변장치들과의 인터페이스를 가지고 있다. 그리고 대부분의 경우에 각 노드는 내부 자원 관리와 통신 자원을 위한 마이크로 커널 수준의 독립적인 운영체제를 탑제한다. 노드들 간의 통신은 메시지-패싱(message-passing) 방식을 주로 사용하며, 통신 거리를 최대한 단축시키고 대역폭을 높이기 위하여 복잡도가 높은 상호연결망(interconnection network)들을 사용한다.

CC-NUMA에서는 UMA 혹은  NUMA 시스템으로 구성되는 독립적인 노드들 여러개가 상호연결망에 의해 접속되며, 캐쉬 일관성 프로토콜에 의해 모든 노드의 캐쉬들과 주기억장치에 저장된 데이터들 간에 일관성이 유지된다. 이 모델의 시스템을 구성하기 위해서는 모든 노드들이 가지고 있는 기억장치들이 전체적으로 하나의 전역 주소 공간을 가지는 분산 공유 기억장치시스템으로 구성되어야 한다. 구성도를 그려서 좀 더 자세한 설명을 다른 문서에서 진행하겠다.

CC-NUMA의 주요 장점은 소프트웨어를 거의 변경하지 않고도 SMP보다 더 높은 수준의 병렬성을 이용할 수 있기 때문에 효율적인 성능을 제공할 수 있다는 점이다. 그러나 만약 기억장치 액세스의 많은 부분이 원격 노드에 대한 것이라면, 성능은 떨어질 것이다. 그러한 성능 저하는 캐쉬를 사용함으로써 어느 정도 방지될 수 있다. 그리고 프로그램 코드와 데이터들의 지역성이 높다면, 원격 기억장치 액세스의 빈도는 더 낮아질 것이다.

분산 시스템은 독립적인 컴퓨터시스템들이 전통적인 네트워크에 의해 연결되어 있는 컴퓨팅 환경을 말한다. 이것은 노드 수만ㅁ큼의 시스템 이미지들을 가진다. 즉, 각 노드는 별도의 OS를 가지고 독립적인 컴퓨터로서 기능을 수행하며, 다른 노드들과 정보를 교호나하거나 병렬처리를 수행할 때만 네트워크를 통하여 서로 통신한다. 각 노드는 PC, 워크스테이션, SMP, MMP 혹은 그들의 조합으로 이루어진다.

클러스터 컴퓨터랑 고속 LAN이나 네트워크 스위치에 의해 서로 연결된 PC들 혹은 워크스테이션들의 집합체를 말한다. 분산 시스템과는 달리, 클러스터 컴퓨터에서는 모든 자원들이 단일 시스템 이미지로 사용될 수 있다. 즉, 어느 한 노드 컴퓨터에 접속한 사용자는 클러스터를 코든 노드들에 포함된 프로세서들과 주기억장치 및 디스크들로 구성되는 하나의 큰 시스템으로 간주하고 사용할 수 있다. 그리고 클러스터 내의 어느 한 컴퓨터에 결함ㅁ이 발생하더라도 다른 컴퓨터가 신속히 대체될 수 있기 때문에 가용성도 높다. 이와 같은 새로운 시스템 설계 개념을 이용하면, 저렴한 가격으로도 높은 성능과 신뢰도를 가지는 병렬처리 환경을 구축할 수 있기 때문에, 최근 웹 컴퓨팅 서버 등의 개발에 널리 사용되고 있다.

“병렬컴퓨터의 분류 – 시스템 구성”의 한가지 생각

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.