본문 바로가기

카테고리 없음

슈퍼컴퓨터이란? 단점

'슈퍼컴퓨터'란 대규모의 연산을 초고속으로 수행하기 위해 만들어진 컴퓨터로, 요즘의 컴퓨터가 인터넷 단말기 + 게임기 + 사무용 기계에 가까워지고 있는, 다시말해 뛰어난 연산능력을 응용하여 여기저기 써먹고 있는 반면 이건 원래의 뜻에 걸맞은, 진정한 계산만을 위해 만들어진 컴퓨터이다.

과거 슈퍼컴퓨터는 계산에 특화된 특수 아키텍처와 통신 매커니즘을 가지고 전용 CPU를 사용했다. '크레이'등이 이 업계에서 이름을 날릴 때는 이 구조를 사용했다. 하지만, 하나의 CPU에 성능을 집적하는 것에는 제약이 있어 금방 한계에 도달했다. 실제로 2005년부터 단일 CPU 코어의 성능은 정체기에 도달했다. 이는 PC 시장에서도 '4GHz의 벽'라는 용어가 생겨났다.

하나의 CPU만으로는 한계가 있다면, CPU를 여러 개를 쓰면 된다는 생각으로 '병렬 처리'에 눈을 돌린다. 코어 수가 많을수록 더 계산 능력이 좋아질 거라는 단순한 생각에, 더 좋은 슈퍼컴퓨터를 만들기 위해서 코어의 수를 미친듯이 늘리는 방향으로 발전한다. CPU 위주로 구성된 슈퍼컴퓨터의 코어 숫자가 이제 수십만 개는 우습게 넘어서는 수준이 되었다. 예를 들어 2019년 6월 기준 슈퍼컴퓨터 랭킹 13위인 미국의 Sequia는 CPU 코어가 156만 개짜리이며, 랭킹 1위인 중국의 Sunway TaihuLight는 무려 1064만 개라는 정신나간 숫자의 코어로 구성되어 있다. 또한, 물량으로 밀어 붙이는데 굳이 비싼 전용 CPU를 쓸 필요가 없다는 생각에, 인텔이나 AMD 등에서 제조하는 서버용 마이크로프로세서를 많이 사용한다. 다만 계산만 빨리 하면 하드웨어는 뭘 써도 상관이 없기 때문에 PowerPC나 ARM 코어를 이용할 수도 있다.

그러나 코어의 수가 늘어나면서 다른 문제가 발생하기 시작했다. '코어가 많다. = 전기를 많이 쓴다.'와 동일하기에, 코어를 많이 탑재한 슈퍼컴퓨터는 어마어마한 전기를 사용하게 되었다. 게다가 발열 문제도 심각해졌고, 이를 해결하기 위해서 에어컨도 미친듯이 돌려야 하는데, 에어컨도 전기를 많이 사용하는 냉방 장치이다. 이렇듯 전력 소모와 발열이 감당할 수 없는 수준이 되어버리면서, 결국 저전력 CPU를 사용하게 되고, 여기에 예산 문제까지 고려하게 되면 저렴한 서버용 CPU를 이용해서 구성하게 된다.[3] 일명 그린 컴퓨팅이 중요한 이슈가 된다.

또한, CPU만으로는 성능을 뽑아내는 데 한계가 있다고 생각한 슈퍼컴퓨터 설계자들은 이제 GPGPU나 SoC 병렬 주전산기 등으로 눈을 돌렸다. 연산은 GPU 같은 계산용 프로세서들이 하고, 이 계산을 통제ㆍ관리하는 것은 CPU가 담당하는 구조이다. 예를 들어 2016년 11월 기준 랭킹 3위인 타이탄의 경우 NVIDIA TESLA를 이용하여 막대한 계산 성능을 뽑아내는 구조로 만들어졌다. 참고로, 2016년 전 세계에 이름을 알린 알파고 역시, GPU의 병렬 처리를 이용한 극대화된 계산 능력을 활용하는 구조이다. 다만, CPU가 아닌 프로세서들은 프로그래밍이 어렵다는 문제가 있기 때문에, 아직까지는 적용분야가 기계학습 같은 분야로 한정되어 있다.

요즘 떠오르고 있는 클라우드 컴퓨팅 분야 중 계산 클라우드를 이용한 방법도 제시되고 있다. 계산을 클라우드 컴퓨팅에게 떠넘기는 것인데, 일종의 그리드 컴퓨팅과 같다. 결과적으로 슈퍼컴퓨터와 유사한 용도로 사용할 수 있긴 하지만, 계산 클라우드는 통상 슈퍼컴퓨터라 부르지 않는다. 이는 계산 클라우드가 고전적 슈퍼컴퓨터와는 운영 방식이 다르기 때문이다. 슈퍼컴퓨터는 소수의 사용자가 매우 복잡한 연산을 처리하는 것을 주 목적으로 하고, 계산 클라우드는 많은 인원이 비교적 강도가 낮은 연산을 하는 것을 주 목적으로 한다. 즉, 계산 클라우드의 경우에는 단순한 연산 데이터가 많이 모여 빅 데이터를 이루는 데 반해, 슈퍼컴퓨터의 경우에는 한 계산에서 처리하는 데이터가 크고 계산 부하 또한 크다.

현대 슈퍼컴퓨터의 전체적인 구성을 살펴보면 중대형급 서버의 성능을 지닌 노드들이 수백~수천 개 모여서 초고속 통신망으로 연결된 형태이며 노드간의 데이터 통신 속도가 종합적인 계산 성능에 막대한 영향을 끼치기 때문에 대단히 중요시된다. 이 HPC 네트워크 분야에선 투탑은 인텔의 옴니패스와 멜라녹스의 인피니밴드가 투탑을 달리는 중. TOP500의 랭크에서 보여주듯이 이론상의 최대성능(Rpeak)과 실질 성능(Rmax)이 구분되는 이유도 통신 등에 의한 문제로 모든 코어의 성능을 100% 발휘하지 못하기 때문이다.

과거에는 외부로 나가는 네트워크마저 제대로 구성되어 있지 않았기에 서버로 사용하기에도 곤란한 시절도 있었다. 이 또한 현재는 고성능 네트워크를 이용한 클러스터 구성이 기본이며, 그래서 네트워크가 부실한 슈퍼컴퓨터란 건 존재하지 않는다. 단지, 보안 문제로 외부에서 접속하는 것을 철저하게 차단할 뿐이다.

흔히 슈퍼컴퓨터를 일반 PC처럼 게임 등의 용도로 써먹을 수 있지 않을까 생각하는 사람들이 많은데, 일반적으로 슈퍼컴퓨터는 사용자와의 상호작용성(User Interaction)이 일반적인 PC 환경과는 매우 다르다. 현재의 슈퍼컴퓨터는 슈퍼라는 이름에 걸맞는 그래픽 칩셋도 탑재하니, 연산결과를 실시간 초고해상도 VR로 뽑아내는 것이 충분히 가능하다. 하지만 하드웨어가 충분해도 소프트웨어가 없으면 게임을 할 수 없다. 시중에서 개발되는 게임들이 점차 병렬처리를 지원하는 방향으로 변화하고는 있지만 아직은 듀얼 코어, 잘해야 쿼드 코어를 겨우 사용하는 수준이다. 아무리 슈퍼컴퓨터라도 개개 코어의 성능은 개인용 컴퓨터와 비슷하거나 오히려 낮은 수준이다. 이론상의 성능 대비 가격으로 봤을 때 저성능 코어를 더 많이 때려박는 쪽이 싸게 먹히기 때문이다. 따라서 억지로 상용 게임을 돌려본다 해도 일반 컴퓨터와 동일한 수준, 혹은 그보다 더 낮은 성능을 보여줄 것이다. 수천~수백만 코어를 상정하고 만들어진 오락 용도의 게임은 없다. 슈퍼컴퓨터에서 돌아가는 '게임'이라고는 전쟁 시뮬레이션인 워게임이나 기술 시연을 위한 체스/바둑/퀴즈게임 정도밖에 없다.

웹 호스팅이나 게임 서버 등의 용도에서도 슈퍼컴퓨터는 비효율적이다. 여러 개의 독립적인 작업들을 동시 처리하기 위한 용도로 슈퍼컴퓨터를 사용하는 것은 낭비이며 클라우드 컴퓨팅 쪽이 가성비가 훨씬 좋다.

슈퍼컴퓨터의 진정한 존재의의는 일반 컴퓨터가 다루지 못하는 단일 거대 문제들 (대표적으로 시뮬레이션)[4]을 계산하는 용도라고 할 수 있다. 따라서 일반인의 사용 목적과는 100만 광년 이상 떨어져 있다고 보면 된다.

현대의 슈퍼컴퓨터들은 대부분 페타플롭스 수준의 계산능력을 가지고 있다. 페타는 1015를 뜻하며, 페타플롭스는 1초에 1015번의 부동소수점 계산을 할 수 있는 성능으로, 쉽게 말해 초당 1000조번의 계산을 하는 것이다. 예를 들어 17.590 페타플롭스의 성능을 가진 Titan은 초당 1경 7590조 번의 연산능력을 가지고 있는 것. 2016년 11월 기준 1위 Sunway TaihuLight는 약 93 페타플롭스, 2위 톈허-2는 약 34 페타플롭스, 3위 Titan은 약 18페타플롭스의 성능을 가지고 있다. 참고로 기가는 109, 테라는 1012, 페타는 1015, 엑사는 1018을 뜻한다.

오늘날 슈퍼컴퓨터 속도와 비교를 하자면 여러분 PC에 꽂힌 CPU 한 개가 빨라봐야 300~400 기가플롭스 정도[5]이고 따라서 Titan은 여러분 PC 5만 대를 모아놓은 것과 같다..

슈퍼컴퓨터의 속도가 빨라진다고 하더라도 시스템의 아키텍처를 바꿀 때는 고민할 필요가 있다. 단순히 계산 능력만 고려해서 기존 CPU 위주 체계를 벗어난 설계를 할 경우, 막상 이 슈퍼컴퓨터들을 사용해야 할 과학자들이 프로그래밍을 할 수 없는 데다가, 외부 라이브러리도 사용할 수 없는 문제가 생긴다.

슈퍼컴퓨터를 사용하는 과학자들의 대부분은 FORTRAN이나 C/C++과 같은 언어로 프로그래밍을 한 경험은 많다고 해도, 컴퓨터공학과 하드웨어에 대한 지식 자체는 학부 전공생보다도 못한 경우가 많다. 그런데 완전히 새로운 아키텍처는 필연적으로 새로운 프로그래밍 언어를 요구하게 되고, 대부분의 경우 FORTRAN과 C/C++보다 배우기가 훨씬 어렵다. 특히 하드웨어 관련 지식이 부족하면 더더욱 어렵다.

뿐만 아니라 새로운 아키텍처에서는 기존에 사용하던 외부 라이브러리를 쓸 수 없게 될 가능성이 높다. 과학계산 프로그램들은 수학이나 병렬연산 라이브러리를 사용하곤 하는데, 이러한 라이브러리들은 수십 년의 기간 동안 많은 사람들이 개발하고 테스트 해온 산물이다. 그래서 새로운 아키텍처가 나오면 그 아키텍처에서 사용 가능한 라이브러리를 개발하는 데 또 오랜 시간이 걸리게 된다. 결국 새로운 하드웨어가 있어도 누군가 필요한 라이브러리를 개발해줄 때까지 과학자들은 손가락만 빨고 있어야 하는 셈이다.

2018년 6월 기준 TOP 500에 오른 모든 슈퍼컴퓨터는 OS로 리눅스를 사용한다고 한다. 그전에는 윈도우즈 HPC 버전이나 크레이 OS 등이 사용된 시스템도 있었으나, 모두 밀려나고 신규 시스템이 모두 리눅스를 채용하면서 리눅스 천하가 완성되었다.

TOP 500 에 오른 슈퍼컴퓨터의 성능 총합이 1 엑사플롭스를 돌파하여, 1.22엑사플롭스를 기록했다. 

 

단점으로는 당연하겠지만 크고 비싸다. 예를 들어 대한민국 기상청에서 도입한 슈퍼컴퓨터 3호기 해담, 해온의 가격은 500억 원이 넘고, 4호기도 600억 원쯤 들었다. 그리고, 이 슈퍼컴퓨터를 설치하기 위해서 아예 건물을 새로 지어야 했다. 또한, 전기를 무지하게 사용한다. 컴퓨터 수십만대를 구동하는 것이니 당연한데, 거기에다 방진, 항온항습장치 등 공조설비에도 상당한 비용이 투입된다.[30] 전기를 많이 쓴다는 것은 다시 말해 운용 유지비가 비싸다는 말과 동일하다. 또한, 엄청 비싼 몸이니 고장이 날 경우 그만큼 수리 비용도 상당하다.

그리고, 1위 계보를 보면 알겠지만 성능 향상이 상당히 빠르다. 2002년 1위였던 어스 시뮬레이터의 경우 실성능이 36테라플롭 정도였는데 10년이 지난 뒤에 1위는 그보다 천 배쯤 빠른 33페타플롭이다. 단일 프로세서가 아니고 병렬 프로세서 처리가 효율이 높아지자 CPU 수의 증가를 통해서[31] 지속적인 성능 향상이 이루어지고 있고 이 속도는 상용 CPU의 발전 속도에 비해서도 훨씬 더 빠르다. 비싼 돈 들여서 구축해놨더니 몇년 지나서 애물단지가 되는 상황이 발생하는 것. 실제로 기상청에서 2004년 500억을 들여서 TOP 16위에 드는 슈퍼컴퓨터 2호기를 도입했지만 8년이 지난 후에는 고철 값을 받고 팔아야 하는 처지가 되기도 하였다.# 이와 비슷하게 기상청 슈퍼컴퓨터 3호기 역시 같은 운명이 되었다. #

일본도 같은 고민에 처했는데, 2011년 성능으로 세계 최고 슈퍼 컴퓨터 였던 '케이'는, 개발비로 793억 엔이 들었지만 2019년에는 노후화된 장비 및 매년 100억 엔이 드는 유지비용으로 골치 아프게 됐다고 한다. 기판과 CPU조차 전용으로 설계되어 다른 일반 컴퓨터에도 이용이 불가능해서 일부는 과학 박물관에 나머지는 고철 신세가 될 예정.#

게다가 고성능 컴퓨팅의 패러다임이 빠르게 바뀌는 시대라는 점도 슈퍼 컴퓨터의 단점 중 하나이다. 이를테면 패러다임이 CPU에서 GPGPU, 심지어 FPGA까지 동원되기 시작하면서 매해 성능 향상과 전력 효율 향상폭이 올라가는 추세라 기존 슈퍼 컴퓨터 솔루션이 무의미해지는 시기가 점점 앞당겨지고 있다. 또한 특화된 컴퓨터는 비싸기 마련이지만, 잘 설계된 분산 시스템 위에서는 저렴한 일반 컴퓨터[32] 여러 대를 묶어 컴퓨팅하는 게 대체로 가성비가 좋고 인프라 역시 재사용하기 쉽다. 구글이나 아마존, MS 등 클라우드 컴퓨팅 서비스가 주로 취하는 전략. 이 쪽은 규모의 경제를 취하기 때문에 데이터 센터를 훨씬 효율적으로 운영할 수 있다는 점 역시 이점. 또한 슈퍼컴퓨터의 성능을 PC나 모바일 기기가 따라잡는 시간도 점점 짧아지고 있어서 머지않아 덩치 큰 슈퍼컴퓨터의 시대는 막을 내릴수도 있다.