• 검색 결과가 없습니다.

S HARED - MEMORY MIMD MACHINES

문서에서 최신 슈퍼컴퓨터에 대한 이해 (페이지 14-0)

2. ARCHITECTURE OF HIGH-PERFORMANCE COMPUTERS

2.4. S HARED - MEMORY MIMD MACHINES

앞서 그림 1에서 이 분류에 속하는 형태의 시스템을 하나 소개했었다. 실제로, 앞에서 논의 된 단일 프로세서 벡터 시스템은 좀더 일반적인 형태에 속하는 한가지 특별한 예라고 할 수 있다. 그 그림에서는 하나의 시스템에 하나 이상의 FPU와 VPU가 가능함을 보여주고 있다.

공유 메모리 시스템에서 직면한 주된 문제점 한 가지는 CPU와 CPU 그리고 CPU와 메모리 사이의 연결이다. 이상적으로는 더 많은 CPU가 추가된다면 전체 메모리 대역폭은 프로세서 개수에 선형적으로 증가해야 한다. 반면에 각 프로세서는 중간 단계에서 메모리를 사용함으 로써 성능이 저하되는 방식을 사용하지 않고 직접적으로 다른 모든 프로세서와 통신하는 것 이 좋다. 문제는 이와 같은 전체 연결 비용이 매우 높다는 것이다. 프로세서 개수가 O(n)으 로 증가할 때 그 전체 연결 비용은 O(n2)로 증가한다. 그래서 여러 가지 대체 방안이 연구 되었고 지금도 연구되고 있으며, 그들 중 일부가 아래 그림에 있다.

그림 4: Some examples of interconnection structures used in shared-memory MIMD systems.

위의 그림 4에서 크로스바를 통한 n2 연결, Ω-network를 통한 nlog2n 연결, 그리고 중앙

버스(central bus)를 통한 하나의 연결 등을 볼 수 있다. 이러한 연결 구조들은 다른 형태의

맞춰 크로스바의 속도를 올리는 것까지 고려하면 문제는 더 커지게 된다.

사용되는 네트워크가 무엇이든지 프로세서 타입은 원칙적으로 연결 토폴로지에 무관하지만, 실제로는 버스 구조를 가지는 시스템은 벡터 프로세서를 사용하지 못한다. 이것은 프로세서 의 속도가 합당한 비용으로 구성 가능한 어떠한 버스 구조와도 많은 차이가 있기 때문이다.

사용되는 모든 버스 지향적(bus-oriented)인 시스템은 RISC 프로세서를 사용한다. RISC 시 스템에서 데이터 접근이 캐시에서 이루어지면 메모리에 접근할 필요가 없어지므로, 각 프로 세서의 로컬 캐시를 통해 대역폭 문제를 줄일 수 있다.

MIMD 타입 시스템은 서로 다른 작업을 다른 프로세서를 이용해 동시에 실행시킬 수 있다.

이때 작업들 사이의 동기화가 필요한 경우가 많다. 그래서 다시 연결 구조가 중요해 진다.

대부분의 벡터 프로세서 시스템은 CPU 내부에 통신 레지스터를 두고 있다. 이것을 통해 동 기화가 필요한 다른 프로세서와 직접적으로 통신할 수 있다. 시스템은 공유된 메모리를 경 유해 동기화할 수도 있다. 이 방법은 많이 느리지만, 동기화가 상대적으로 적게 필요한 경 우 충분히 사용될 수 있다. 버스 기반 시스템에서의 통신은 물론 버스를 통하게 되는데 동 기화 속도를 최대로 보장할 수 있도록 대부분 데이터 버스와는 별개의 버스를 사용한다.

2.5. Distributed-memory MIMD machines

DM-MIMD 시스템은 공유 메모리 시스템이나 DM-SIMD 시스템보다 다루기 어렵지만, 현 재 고성능 컴퓨터 분야에서 가장 빠르게 성장하고 있다. DM-SIMD 시스템은 프로세서 배열 시스템으로 시스템 소프트웨어에 의해 자동으로 프로세서에 올려지는 벡터와 다차원 배열 등과 같은 자료구조에 대해 병렬화를 시도한다. 공유메모리 시스템에서도 사용자가 데이터 분배를 직접 처리하지 않아도 된다. 그러나 DM-MIMD 시스템에서는 사용자가 프로세서에 게 데이터를 분배해야 하고 프로세서 사이의 데이터 교환도 항상 사용자에 의해 명시적으로 이루어져야 한다. 초창기 DM-MIMD 시스템 사용을 꺼려하게 되던 여러 원인들이 점차 줄 어 들고 있다. 부분적으로 이것은 통신 소프트웨어[14,22,23]에 대한 표준이 이제는 존재하 기 때문이기도 하고, 또 다른 부분적인 이유로는 적어도 이론적으로는 이 종류의 시스템이 다른 어떤 시스템보다 더 나은 성능을 보여줄 수 있기 때문이기도 하다.

프로세서가 많아 질수록 자동으로 대역폭이 확장되므로 공유 메모리 시스템에서 자주 볼 수 있는 대역폭 문제를 피할 수 있다는 것은 DM-MIMD 시스템의 분명한 장점이다. 게다가 공 유 메모리 시스템의 성능 결정에 중요한 역할을 하는 메모리 속도는 DM-MIMD 시스템에 서는 상대적으로 덜 중요해 진다. 앞서 언급한 대로 DM-MIMD 시스템에서는 대역폭 문제 없이 더 많은 프로세서를 연결할 수 있기 때문이다. 공유 메모리 시스템에서 DM-MIMD 시 스템과 비교되는 최고의 성능을 얻기 위해서는 매우 빠른 프로세서와 그에 맞는 빠른 메모 리가 갖춰져야 한다.

DM-MIMD 시스템의 단점도 몇 가지가 있다. SM-MIMD 시스템과 비교해 프로세서 사이의

통신이 많이 느리다. 그래서 통신이 필요한 작업에서 공유 메모리 시스템에 비해 동기화 부 하가 많이 커지게 된다. 또, 어떤 프로세서의 로컬 메모리에 없는 데이터에 대한 접근은 논 로컬 메모리에서 얻어야 한다. 대부분의 시스템에서 이것은 로컬 데이터 접근과 비교해 매 우 느리다. 문제 자체가 프로세서들 사이에서 잦은 데이터 교환이 필요하고 프로세서 동기 화가 많다면 시스템이 가지는 이론 최고치에 훨씬 못 미치는 성능을 보일 수도 있다. 앞서 설명한대로 대부분 데이터나 작업의 분배가 사용자에 의해 명시적으로 수행되어야 한다는 것도 하나의 단점이 된다.

DM-MIMD 시스템 역시 데이터 경로들의 속도와 토폴로지가 전체 시스템 성능에 중요한 영향을 미친다. SM-MIMD 시스템처럼 연결 구조를 얼마나 많이 할 것이냐를 비용을 고려 해 결정해야 한다. 생각할 수 있는 많은 연결 구조들 중에서 일부만이 실질적으로 사용되고 있는데 그 중 하나가 아래 그림 (a)에서 볼 수 있는 hypercube 토폴로지다.

(a) Hypercubes, dimension 1-4

(b) A 128-way fat tree

그림 5: Some often used networks for DM machine types

이 로그함수적인 복잡성을 가지는 것들도 종종 사용된다.

SM-MIMD 시스템처럼, 하나의 노드에는 계산이나 transaction 처리를 위해 스칼라나 벡터 어떤 형태의 프로세서도 가능하다. 프로세서들은 캐시가 있던 없던 로컬 메모리를 가지며, 대부분의 경우, 이웃 노드와 연결되는 독립적인 통신 프로세서를 가진다. 최근엔 노드 프로 세서들 대부분이 이미 생산되어 있는 RISC 프로세서들을 사용하며, 경우에 따라서 성능 향 상을 위해 벡터 프로세서가 이용되기도 한다. 노드간 통신 성능의 향상 없이 노드 프로세서 를 업그레이드 할 때, 통신과 계산 성능이 조화되지 못하는 DM-MIMD 시스템 고유의 문제 가 발생한다. 이로 인해, computational-bound한 문제가 communication-bound한 문제로 변할 수도 있다.

2.6. ccNUMA machines

최근의 클러스터는 상대적으로 적은 수(16개 정도)의 RISC 프로세서를 가지는 SMP 노드를 이용해 구성되는 경향을 보인다. 한 노드 내에 있는 프로세서들은 대부분 1단 크로스바로 연결되며, 클러스터를 구성하는 노드들은 좀더 저렴한 네트워크를 이용해 연결된다. 이와 같은 시스템의 구조를 나타낸 것이 아래 그림이며, 여기서 클러스터 내의 모든 프로세서들 은 메모리를 공유하고 있음을 주의해 보자.

그림 6: Block diagram of a system with a “hybrid” network: clusters of four CPUs are connected by a crossbar. The clusters are connected by a less expensive network, e.g., a Butterfly network.

이것은 앞서 언급됐던 대형 벡터 프로세서 앙상블과 비슷한 형태이지만, 중요한 차이점은 모든 프로세서들이 필요하다면 모든 주소 공간에 접근할 수 있다는 것이다. 이런 시스템들 은 SMP 노드들이 메모리를 공유하는 방식에 따라 S-COMA(Simple Cache-Only Memory) 와 ccNUMA(Cache Coherent Non-Uniform Memory Access)의 두 가지 형태로 나눌 수 있다. 이와 같은 형태의 시스템들은 SM-MIMD로 볼 수 있지만, 메모리가 물리적으로 분산 되어 있으므로, 데이터 접근 연산이 항상 같은 시간에 처리된다는 것을 보장할 수 없다. S-COMA 시스템에서 로컬 노드의 캐시 계층구조는 다른 노드의 메모리로 확장된다. 그래서 로컬 노드의 메모리에 없는 데이터가 요청될 때 해당 데이터가 저장된 노드의 메모리에서 검색된다. 이런 개념이 ccNUMA에서는 더욱 확장되어서 시스템의 모든 메모리를 대상으로 데이터를 검색하게 된다. 그래서 데이터는 물리적으로 로컬이 아닐지라도, 논리적으로 하나 인 공유 주소 공간에 속하게 된다. 데이터는 물리적으로 여러 노드에 분산되어 있을 수 있 기 때문에 다른 데이터에 대한 접근 시간이 달라질 수 있고 이로 인해 non uniform data access라는 표현을 사용한다. Cache Coherent의 의미는 변수들이 모든 CPU에 대해 항상 일관성 있는 값을 가져야 한다는 것이다. 이런 관점에서 시스템은 해당 변수들을 저장하는 캐시들이 일관성 있게 값을 가지도록 보장한다. CPU의 캐시 일관성을 보장하는 다양한 방 법이 있으며, 그 중 한 가지가 스누피 버스 프로토콜(snoopy bus protocol)이다. 이것은 캐 시가 시스템내의 CPU들로 전송되는 모든 변수들을 체크하여 그에 해당하는 변수를 현재 가지고 있다면 그것을 갱신하는 방법이다. 다른 방법으로는 directory memory를 사용하는 것이며, directory memory는 변수들의 모든 복사본과 그 유효성을 추적할 수 있는 메모리 의 특별한 부분이다.

현재 S-COMA scheme을 쓰는 상용 시스템은 없으며, 많이 사용되는 Bull NovaScale, HP Superdome, SGI Altix3000 등과 같은 시스템들은 상용 ccNUMA 시스템들이다. NUMA 시 스템의 중요한 특성으로 NUMA factor가 있다. 이 factor는 로컬 메모리에 있는 데이터에 접근하는 latency와 논-로컬 메모리에 있는 데이터에 접근하는 latency의 차이를 나타낸다.

그런데 시스템의 연결 구조에 의존하는 NUMA factor는 시스템 부분마다 달라질 수 있다.

그런데 시스템의 연결 구조에 의존하는 NUMA factor는 시스템 부분마다 달라질 수 있다.

문서에서 최신 슈퍼컴퓨터에 대한 이해 (페이지 14-0)