다음 이전 차례

2. Beowulf Cluster

공학을 하고 있는 필자 뿐만 아니라, 모든 사람들이 "better, faster, cheaper"한 컴퓨터를 원하고 있다. 그러나, 웍스테이션 구입을 해본 사람들은 잘 알겠지만, 이런 바램과는 멀리 하이-엔드 컴 퓨터 이른바 우리가 잘알고 있는 웍크스테이션 벤더인, HP, SGI, SUN, DEC의 제품들을 보면 우 리의 이러한 바램과는 달리 좋은 것은 하나도 없지만, PC보다 약간 빠른 속도로 인해 엄청난 비 용을 지불해야 하는 경우를 만나게 된다. 특히 이러한 하이-엔드 컴퓨팅 환경에서는 제한된 벤더 의 수로 인해 시스템간의 하드웨어와 소프트웨어 호환성의 부족으로 PC와 같이 사용자가 직접 조립하여 적당한 소프트웨어를 설치하여 사용한다는 것은 생각 할수 없는 현실이다. 당연히 이러 한 특성으로 인해 하드웨어와 소프트웨어의 가격은 비쌀수 밖에 없고 유지와 보수에 드는 비용 또한 무시할 수 없는 현실이다. 이러한 고가의 하이-엔드 컴퓨팅 환경의 대안으로 NASA에서 Beowulf 프로젝트라는 이름으로, 시장에서 누구나 살수 있는 PC 하드웨어와 누구나 사용할수 있 는 소프트웨어인 리눅스를 이용한 하이엔드 컴퓨팅 영역에 대한 새로운 시도를 하게 되었다.

Beowulf 프로젝트가 성공하게 된 몇가지 중요한 요인으로 PC 프로세스(Intel x86, DEC Alpha, Power PC)의 급속한 발전이다. 근래에 들어 부동소수점 연산에 획기적인 향상이 있었으며, PC 프로세서의 발전 속도는 이미 기존의 하이-엔드 프로세스보다 3배이상 빠르며, 리눅스가 사용가 능한 알파 프로세서는 이미 그 속도를 앞질렀다. 이와 더불어 고급 유닉스 서버나 웍스테이션에 만 사용되었던 SCSI 장비의 대중화와 그리고, 네트웍 장비의 급속한 발전과 더불어 100Mbps switching hub의 가격하락으로 인해 Beowulf 클러스터를 구축할 수 있는 하드웨어를 PC급으로 도 충분히 구축 가능해졌다. (외국에서는 100Mbps switching hub를 포트당 100불 미만으로 구입 가능하지만, 국내는 여전히 고가이다.)

물론 이러한 하드웨어 발전만으로 Beowulf 프로젝트가 성공할수 있었던 것은 절대 아니다. 이렇 게 다른 목적을 두고 발전해온 하드웨어를 리눅스는 하나의 시스템으로 통합하여 Beowulf 라는 새로운 타입의 병렬컴퓨터를 만들어 낸 것이다. 너무나 잘 아는 얘기지만, 리눅스는 기존의 상용 유닉스보다 더 낳은 환경을 제공하였는데, 바로 소스 코드의 100% 개방으로 Beowulf cluster에 적합하게 자유롭게 소스 코드를 수정하고 새롭게 개발하여 배포할수 있는 환경을 제공하였는데, 이러한 리눅스의 자유함이 없었다면 이 프로젝트는 실패하였을 것이다. 이외에도 MPI, PVM같은 message passing library의 표준화가 이루어져 상용 병렬컴퓨터와 마찬가지로 Beowulf cluster에 서도 자유롭게 사용할수 있게 됨으로 인해 Cray로 시작하는 수퍼 컴퓨터에서 시작해서 Desktop PC까지 일관된 프로그래밍 작업을 할수 있게 되었다.

수퍼 컴퓨터를 구조적으로 살펴보면, RC5/DES 크랙같이 전세계적으로 internet으로 연결된 컴퓨 터들도 하나의 병렬처리 수퍼컴퓨터로 볼수 있으며, 이와 반대로 상용 수퍼 컴퓨터로서 초고속 네트워크로 구성된 MPP, vector, SIMD cluster도 있다. 이러한 상용 수퍼 컴퓨터는 시스템 디 자인과 개발 시간으로 인해 급속히 발전하고 있는 마이크로 프로세서를 즉각적으로 수용하기 힘 든 단점이 있는 반면 Beowulf Cluster는 각각의 node가 개별적인 OS를 가지고 있으며 고속의 local area network를 이루고 있기 때문에 뛰어난 확장성이 있으며, 급속히 발전하고 있는 마이 크로 프로세서를 즉각적으로 수용하기가 용이하다. 물론 SUN같은 대중적인 웍스테이션을 이용하 여 network clustering을 할 수 있지만, 고비용으로 인해 확장성에 한계를 가지게 된다. Beowulf cluster는 각 slave node는 기본적으로 M/B, RAM, NIC, CPU만을 가지고 키보드, 마우스, 모니 터는 공유기를 통하여 master node에서 전체 node를 제어하고 전적으로 병렬처리에 사용된다는 점에서 일반적인 workstation cluster와 구분된다. 가장 간단한 beowulf cluster는 switching hub 없이 직접 cross link하여 2 node로 구성할 수 있 는데 각 node에 CPU를 2개씩 설치한다면 간단한 4 processor mini beowulf cluster를 만들수 있 다. 초기 beowulf cluster은 8-node 또는 16-node로 ethernet을 바탕으로 시작하였지만, 현재 제 대로 된 Beowulf cluster을 구성하기 위해서 shared 100MBPS급인 일반 fast ethernet hub 보다 는 각 node간의 network I/O bandwidth를 보장하기 위해서 dedicated 100MBPS를 제공하는 switching hub가 필수적이다. 현재 16포트 switch를 사용할 경우 최대 16 node를 구성할 수 있 으며, network I/O의 bandwidth가 부족할 경우 각 node에 NIC를 추가 설치하여 network channel bonding을 하여 node수는 줄어들지만, 네트웍 대역폭을 증가시킬수도 있다. (여기서 말하 는 node는 M/B의 수로 각각의 node는 dual 또는 quad cpu로도 가능하다.)

100 node이상 설치하여 운영하고 있는 곳은 대개 gigabit uplink가 가능한 100MBPS switch를 사 용하여 각 node를 연결시키고 이러한 switch를 gigabit switch로 연결하여 각 node간의 network 를 통한 I/O bandwidth를 손실을 최소화 한다. 이런 방식으로 네트웍을 구성할 경우 극단적인 경우를 생각하면, beowulf cluster과 네트웍 구성은 틀리지만, Intel의 Pentium Pro CPU를 9152 개를 사용한 ASCI 의 Red System (현재 Top500 list에서 1위)으로 beowulf cluster의 가능성을 충분히 짐작할 수 있을 것이다. 이와 같이, Beowulf cluster의 각 node는 시장에서 쉽게 구할 수 있는 PC 하드웨어로 구축되지만, 네트웍 구성에 사용되는 장비는 예외로서, 전체 Beowulf cluster예산 중에 큰 부분을 차지하고 있으며 기술의 발달로 Myrinet같은 새로운 네트웍 장비가 등장하고 있으나, channel bonding한 네트웍 구성에 비해 가격대 성능비에서 큰 효과를 보이지 못하고 있어 지금은 널리 사용되고 있지 못하다.


다음 이전 차례