다중컴퓨터에 대해서
다중처리기는 모든 CPU가 메모리를 공유한다는 비교적 간단한 통신 모델을 기반으로 하기에 매력적이고 많이 사용되고 있다. 일부 프로세스들은 메시지를 메모리에 스고, 다른 프로세스들은 그것을 읽을 수가 있다. 동기화는 뮤텍스, 세마포어, 모니터 등의 기법으로 이뤄진다. 약간의 단점이 있다면, 대규모의 다중처리기는 만들기가 다소 어렵고 비싸다는 점이다.
이러한 문제를 해결하기 위해 다중컴퓨터에 대한 많은 연구들이 진행되었다. 다중컴퓨터는 긴밀하게 연결된 CPU들로 구성되며, 공유 메모리는 없다고 보면 된다. 그 대신에, 각 CPU는 독립적인 메모리를 갖는다. 이런 시스템은 클러스터 컴퓨터, COWS 등 다양한 이름으로 알려져 왔다.
다중컴퓨터는 구현 비용이 비교적 적다. 각 노드는 사실상 간단한 PC이며, 여기에 부가적으로 고속 네트워크 인터페이스만 추가하면 된다고 보면 된다. 물론, 고성능을 구현하기 위해선 상호연결망과 인터페이스 카드를 적절하게 설계 필요하다. 이 문제는 다중처리기 시스템에서 공유 메모리를 적절히 설계하는 문제에 비유할 수가 있다. 다만, 메시지의 전송은 마이크로초 단위로 동작하는 것을 목표로 해서 나노 초 단위로 동작하는 다중처리기 시스템과 큰 차이가 있고 다중컴퓨터는 간단하며 또한 저렴해서 쉽게 구현 가능하다.
다중컴퓨터의 기본 노드를 살펴보면, CPU, 메모리, 네트워크 인터페이스, 그리고 하드 디스크 등으로 구성이 된다. 각 노드는 표준 PC 케이스로 패킹되어 있을 수도 있다. 일반적으로 그래픽 어댑터, 모니터, 키보드, 마우스 등은 필요가 없다. 어떤 경우에는 PC가 2-way 혹은 4-way 다중처리기로, 예를 들어보면 듀얼코어 또는 쿼드코어로 구성될 수가 있다. 다만, 여기서는 각 노드가 하나의 CPU를 갖는다고 가정해 보도록 하자. 수 백 개~ 수 천 개의 노드가 서로 연결되어 다중컴퓨터를 구성한다.
각 노드는 네트워크 인터페이스를 가지며, 하나 또는 두 개의 케이블이 연결될 수가 있다. 이 케이블은 서로 다른 노드 또는 스위치에 연결될 수가 있다. 작은 시스템에서는 하나의 스위치를 사용해서 Star 토폴로지를 구현할 수가 있다. 최근 스위칭 가능한 이더넷이 이러한 토폴로지에 사용 가능하다.
단일한 스위치 설계의 대안으로 노드들을 링 구조로 연결할 수도 있다. 네트워크 카드에서 두 개의 케이블이 연결되며, 하나는 왼쪽 노드로 다른 하나는 오른쪽 노드로 연결이 된다. 이런 경우에는 스위치는 필요 없다.
그리드 또는 메시 구조의 경우, 2차원적인 설계이며 정말 많은 상업적인 시스템에서 실제로 사용되고 있다. 이는 매우 규칙적이며 확장성도 상당히 좋다. 이 구조에서는 지름은 가장 먼 노드 간의 거리를 의미하며, 전체 노드 개수의 제곱근을 값으로 갖는다고 보면 된다.
다중컴퓨터에서는 두 종류의 스위칭 기법이 사용된다고 보면 된다. 첫 번째로는, 메시지를 패킷이라고 불리는 고정된 크기의 단위로 나누어서 보내는 것이다. 이 스위칭 기법을 스토어-앤드-포워드 패킷 스위칭이라고 부른다. 패킷은 전송하는 노드의 네트워크 인터페이스 보드에서 첫 번째 스위치로 주입된다. 비트는 한순간에 하나씩 들어오며, 모든 패킷이 입력 버퍼에 도착하면 다음 스위치로 연결된 라인으로 복사된다. 패킷이 목적지 노드에 연결된 스위치에 도착하면, 패킷은 목적지 노드의 네트워크 인터페이스 보드로 복사되며, 결국 RAM으로 전달이 된다.
이 스토어-앤드-포워드 패킷 스위칭은 상당히 유연하고 효율적이다. 그러나, 상호 연결망을 지날 때 지연 시간이 증가된다는 단점이 있다. 한 가지 방법은 패킷이 더 작은 유닛으로 나누어질 수가 있도록 네트워크를 설계하는 것이다. 그렇게 하면, 첫 번째 유닛이 도착하자마자, 패킷의 끝이 도착하기 전에, 그것을 다음 단계로 전달할 수가 있다.
두 번째 스위칭 기법은 회선 교환 방식이다. 이것은 우선 소스부터 목적지까지 모든 스위치의 경로를 설정한다. 일단 경로가 설정이 되면 비트들은 중단 없이 최대한 빠르게 소스에서 목적지로 전달이 된다. 중간 스위치에서 버퍼링 하지는 않는다. 비록 이 스위칭 기법은 비교적 시간이 걸리는 경로 설정을 선행해야 하지만 경로 설정 후에는 이전 방법보다는 빨라진다.
'컴퓨터&네트워크' 카테고리의 다른 글
멀티미디어 운영체제 (6) | 2024.09.11 |
---|---|
메모리 관리 (1) | 2024.09.09 |
네트워크 관련 프로토콜 (0) | 2024.08.27 |
네트워크에 대해서 (0) | 2024.08.26 |
분산 시스템 (0) | 2024.08.25 |