“슈퍼컴퓨터”란 당대에 세계에서 가장 계산 성능이 높은 컴퓨터 및 이와 비슷한 수준의 컴퓨터들을 일컫는 말입니다. 성능이 ‘비슷하다’는 것의 기준이 무엇인지는 사람마다 다를 수 있겠으나, 보통은 TOP500 리스트에 등재될 정도의 컴퓨터들을 슈퍼컴퓨터라고 부릅니다. TOP500 리스트는 전 세계 컴퓨터들을 배정도 실수 연산(double-precision floating-point operations; IEEE 754 표준을 따른 64비트 실수 연산) 성능을 기준으로 줄을 세워 1위에서 500위까지 순위를 매기는 리스트입니다. 즉, 세계에서 500위 안에 들 만큼의 계산 성능을 가지고 있으면 슈퍼컴퓨터로 분류한다고 이해할 수 있겠습니다.

2015년 3월 현재 가장 최신의 TOP500 리스트는 2014년 11월에 발표된 것입니다. (TOP500 리스트는 매년 6월과 11월 두 차례 발표됩니다.) 이를 기준으로, 전 세계에서 가장 빠른 슈퍼컴퓨터는 중국 국방과학기술대학에서 만든 Tianhe-2(天河-2)입니다. 계산 성능은 33.86 PFLOPS인데, FLOPS는 1초에 실수 연산을 몇 개나 할 수 있는지를 나타내는 단위이며 앞에 붙은 P는 10의 15승을 의미합니다. 즉, 1초에 배정도 실수 연산을 3경 3860조 개 수행할 수 있음을 의미합니다. TOP500 리스트에 턱걸이로 들어간 500위 컴퓨터의 성능은 153.3 TFLOPS입니다. 1위에 비하면 약 1/220 정도에 불과하지만 여전히 1초에 배정도 실수 연산을 153조 개 수행하는 엄청난 성능을 가지고 있습니다.

Tianhe-2

2014년 11월 TOP500 1위인 중국 Tianhe-2 슈퍼컴퓨터

매년 성능이 높은 프로세서가 출시되고 여러 기관 및 기업에서 새로운 슈퍼컴퓨터를 도입하기 때문에, 슈퍼컴퓨터와 그렇지 않은 컴퓨터를 구준하는 기준도 계속 높아집니다. TOP500 리스트가 처음 발표된 1993년 6월에는, 세계 500위 컴퓨터의 성능이 0.42 GFLOPS에 불과했습니다. 지금 우리가 사용하는 스마트폰보다도 낮은 성능이지요. 아래 그림은 TOP500 리스트에 등재된 슈퍼컴퓨터들의 성능이 매년 어떻게 증가해 왔는지를 나타냅니다. 매년 약 2배 가량의 성능 증가를 보이고 있는데, 이는 무어의 법칙(18개월마다 집적회로의 트랜지스터 수가 2배씩 증가한다는 법칙)을 뛰어넘는 수준입니다.

TOP500 List Performance Development until November 2014

TOP500 리스트의 성능 추이 (출처: http://top500.org/lists/2014/11/)

이런 엄청난 성능의 슈퍼컴퓨터도 그 안을 들여다 보면 일반적인 컴퓨터 서버 여러 개를 고속의 네트워크로 연결해 놓은 것이 대부분입니다. 하드웨어는 물리적으로 구분되어 있지만, 대신 각종 소프트웨어(프로그래밍 모델, 통신 라이브러리, 작업 스케줄러, 분산 파일 시스템 등등…)를 사용해 여러 컴퓨터가 마치 하나의 시스템처럼 동작하고 한 프로그램을 나누어 수행하도록 만들어 준 것입니다. 이러한 구조의 시스템을 클러스터(cluster)라고 부릅니다. 또한 클러스터를 구성하는 각 컴퓨터를 노드(node), 노드 사이를 연결하는 네트워크를 인터커넥션 네트워크(interconnection network)라 부릅니다. 앞서 소개했던 세계에서 가장 빠른 슈퍼컴퓨터인 중국 Tianhe-2의 경우 총 16,000개의 노드로 이루어져 있습니다. 아래 그림은 TOP500 리스트에 등재된 슈퍼컴퓨터들의 구조가 매년 어떻게 바뀌어 왔는지를 나타냅니다. 약 2003~2004년을 기준으로 클러스터의 비율이 급격히 늘어나기 시작해, 최근에는 거의 대부분의 슈퍼컴퓨터가 클러스터 구조를 채택하고 있습니다.

TOP500 List Architecture until November 2014

TOP500 리스트의 아키텍처 추이 (출처: http://top500.org/lists/2014/11/)

슈퍼컴퓨터에 클러스터 구조가 널리 사용되게 된 데는 몇 가지 이유가 있습니다. 먼저, 일반 서버용 부품(CPU, 메모리, 마더보드 등등…)을 사용해 만들 수 있으므로 비용이 저렴합니다. 과거에는 슈퍼컴퓨터를 만들기 위해 고성능 계산에 특화된 별도의 프로세서(벡터 프로세서 등)를 사용했습니다. 당연히 이들의 가격은 매우 높았습니다. 반면 Intel, AMD 등의 벤더에서 생산하는 범용 x86 프로세서는 규모의 경제에 의해 가격이 상대적으로 저렴합니다. 범용 x86 프로세서의 성능이 높아지면서 더 이상 고가의 전용 프로세서를 사용하지 않더라도 일반 서버만으로 높은 성능을 얻을 수 있게 되었습니다.

TOP500 List Chip Technology until November 2014

TOP500 리스트의 프로세서 추이 (출처: http://top500.org/lists/2014/11/)

또 다른 이유는 유지·보수가 용이하다는 점입니다. 슈퍼컴퓨터는 매우 많은 수의 부품으로 구성되어 있으므로 고장이 자주 발생합니다. TOP500의 최상위권으로 가면 하루에도 몇 번씩 고장이 나기 마련입니다. 고장이 날 때마다 전체 시스템의 가동을 멈추고 수리 혹은 교체해야 한다면, 가용성(availability)도 떨어지고 비용도 매우 많이 들어가게 됩니다. 하지만 클러스터의 경우 일부 노드에 고장이 나더라도 전체 시스템은 멈추지 않고 나머지 노드들을 사용해 계속 돌아갑니다. 문제가 생긴 노드만 분리해서 수리 혹은 교체하면 됩니다. 끝으로 시스템의 성능을 높이기 쉽다는 점도 클러스터의 장점 중 하나입니다. 시스템을 사용하다가 더 높은 성능이 필요해졌다면, 단순히 노드를 더 구입해서 인터커넥션 네트워크에 연결하면 됩니다.