Yeon's 개발블로그

지식을 전파하는 개발자가 되고싶습니다.

Cloud Computing

4. 인터커넥션 네트워크 (Interconnection Networks)

Dev.yeon 2020. 10. 21. 01:36

앞에서 포스팅한 분산메모리시스템과 공유메모리시스템 모두에게 인터커넥션 네트워크는 시스템의 성능에 크게 영향을 끼친다. 

*공유메모리 인터커넥트: bus, crossbar

*분산메모리 인터커넥트

      -Direct: ring, mesh, torus, hypercube

      -Indirect: butterfly, omega


1-1. 공유메모리연결망: Bus

Bus interconnect

-병렬 통신을 위한 와이어와 버스 엑세스를 제어하는 하드웨어로 구성된다. 버스에 연결된 디바이스들이 통신 와이어를 공유한다. 

-트래픽이 클 때 대기시간이 길어지고, 버스에 연결된 디바이스 개수가 많으면 버스 사용경쟁이 커서 성능이 저하된다.

-버스에 연결할 수 있는 디바이스의 개수는 보통 8~16개 정도이고, 값이 싼 것이 특징이다.

 

1-2. 공유메모리연결망: Crossbar

Crossbar interconnect

-디바이스 사이의 데이터 라우팅에 스위치가 사용된다.

-서로 다른 디바이스 사이에는 동시 통신을 허락한다.

-버스보다 빠르고, 스위치와 링크에 드는 비용이 비교적 싸다.


2-1. 분산메모리 연결망: Direct interconnect

각 스위치는 "프로세서와 메모리쌍"에 직접 연결된다. 스위치들끼리도 서로 연결되어 있다. 

*Bisection width란? 

동시에 가능한 통신개수 또는 연결성에 대한 척도로 클수록 좋다. 병렬 시스템을 두 파티션을 분할 했을 때 얼마나 많은 동시 통신이 두 파티션 사이에 이루어질 수 있을까? 에대한 답으로 답이 여러개라면 그 중 최소값(더 나쁜것)을 선택하면된다. 

Ring

 

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 단계에 걸쳐 스위치를 배치시킨다. 하지만 출발지와 목적지가 다르다고 언제나 동시에 통신이 가능한 것은 아니다.