앞에서 포스팅한 분산메모리시스템과 공유메모리시스템 모두에게 인터커넥션 네트워크는 시스템의 성능에 크게 영향을 끼친다.
*공유메모리 인터커넥트: bus, crossbar
*분산메모리 인터커넥트
-Direct: ring, mesh, torus, hypercube
-Indirect: butterfly, omega
1-1. 공유메모리연결망: Bus
-병렬 통신을 위한 와이어와 버스 엑세스를 제어하는 하드웨어로 구성된다. 버스에 연결된 디바이스들이 통신 와이어를 공유한다.
-트래픽이 클 때 대기시간이 길어지고, 버스에 연결된 디바이스 개수가 많으면 버스 사용경쟁이 커서 성능이 저하된다.
-버스에 연결할 수 있는 디바이스의 개수는 보통 8~16개 정도이고, 값이 싼 것이 특징이다.
1-2. 공유메모리연결망: Crossbar
-디바이스 사이의 데이터 라우팅에 스위치가 사용된다.
-서로 다른 디바이스 사이에는 동시 통신을 허락한다.
-버스보다 빠르고, 스위치와 링크에 드는 비용이 비교적 싸다.
2-1. 분산메모리 연결망: Direct interconnect
각 스위치는 "프로세서와 메모리쌍"에 직접 연결된다. 스위치들끼리도 서로 연결되어 있다.
*Bisection width란?
동시에 가능한 통신개수 또는 연결성에 대한 척도로 클수록 좋다. 병렬 시스템을 두 파티션을 분할 했을 때 얼마나 많은 동시 통신이 두 파티션 사이에 이루어질 수 있을까? 에대한 답으로 답이 여러개라면 그 중 최소값(더 나쁜것)을 선택하면된다.
1) Ring: 2
2) Toroidal mesh: 8
3) Fully Connected Network: n^2/4 (n은 프로세서의 개수)
(하지만 실제로는 구축이 불가능한 구조이다.)
4) Hypercube: 2^(d-1) (d는 차원)
: n/2 (n은 프로세서의 개수)
하이퍼큐브는 연결성이 매우 좋은 구조로 같은 번호끼리 연결하는 것을 말한다.
2-2. 분산메모리 연결망: Indirect interconnect
1) Crossbar Interconnect: 프로세서 2개가 동일한 프로세서로 통신을 시도하지 않는한, 모든 프로세서는 다른 프로세서와 동시에 통신을 할 수가 있다. 하지만 스위치의 개수가 많이 필요하다.
2) Omega network: 2*2 크로스바 스위치를 사용하여 스위치 개수가 적게 필요하다. 프로세서의 개수가 n일때, log n 단계에 걸쳐 스위치를 배치시킨다. 하지만 출발지와 목적지가 다르다고 언제나 동시에 통신이 가능한 것은 아니다.
'Cloud Computing' 카테고리의 다른 글
6. MPI program: Coding, Compile, and Run (0) | 2020.10.21 |
---|---|
5. 병렬 프로그램의 성능 평가 (Performance) (0) | 2020.10.21 |
3. 병렬 하드웨어 (Parallel Hardware) (6) | 2020.10.20 |
2. 클라우드 컴퓨팅 요소기술: 가상화(Virtualization) (0) | 2020.10.20 |
1. 클라우드 컴퓨팅 정의 (0) | 2020.10.20 |