본문 바로가기

Papyrus/Dizzy Report

데자뷰: 550억 기상청 슈퍼 컴퓨터 4호기의 미래

대한민국 기상청이 550억을 들여 새로운 슈퍼 컴퓨터를 도입했다고 발표했다. 그러나 최근 스위스 기상청은 20억 정도의 비용으로 비슷한 수준의 장비를 도입했다는 기사가 나오면서 설왕설래 중이다. 원본 기사가 무지한 면은 있지만(완전한 랙 하나의 가격을 전체 가격으로 착각한 것 같다), 그렇다고 이 기사 자체를 일고의 가치도 없다고 평가 절하 할 수 없다. , 단도직입적으로, 아직도 코볼 기반 시스템으로 점점 더 복잡해지는 거래를 처리할 수 있다고 믿는 금융 업체가 있는가? 대한민국 기상청은 믿고 있거나 관심이 없는 것 같다.


슈퍼 컴퓨터 경쟁은 일정 정도 정체된 상태였지만, 몇 년 전 부터 대규모 이종 아키텍처 구성이란 새로운 판 아래서 불꽃 튀는 경쟁이 다시 점화 되었다. 전통의 강자 미국과 신흥 강자인 중국의 슈퍼 컴퓨터 싸움은 이런 국면 전환을 배경으로 하고 있다. 당연히, 대세에서 벗어난 하드웨어는 그 자체로서도, 그리고 소프트웨어 측면에서도 빠르게 도태될 뿐이다. 수백억을 주고 구입한 대한민국 기상청의 슈퍼 컴퓨터 3호기가 공짜라도 인수자가 없어 고철 처리 될 신세라는 것은 이 사실을 잘 보여주는 사례다. 대한민국 기상청은 같은 실수를 반복하고 있다. 기상 예보 프로그래밍 모델을 새로운 하드웨어 흐름에 맞게 개선하는 것보다 하드웨어 성능을 높이는 것으로 갈음하려고 하기 때문이다. 특히, 수많은 변수가 사용되고, 엄청난 계산이 필요한 과학 계산 분야는 애초부터 컴퓨터 공학의 고전적인 주제였으며, 병렬 벡터 프로세서가 강력한 힘을 발휘했다. 그리고, 범용 병렬 벡터 프로세서로 진화한 GPU가 바로 슈퍼 컴퓨터 경쟁의 최전선에 있다. 엔비디아가 최근 가장 심혈을 기울이는 분야가 바로 테슬라 클러스터 기반 슈퍼 컴퓨터다. 엔비디아의 CUDA는 이런 요구에 대해 검증되고 있는 좋은 솔루션이다. 전통적인 포트란 기반 코드를 GPU 기반 코드로 옮기는 것은 쉬운 일은 아니지만, 그렇다고 생각처럼 어려운 일은 아니다. 최근의 GPU는 재귀 호출조차 지원되지 않아서 CPU 기반 코드를 조잡하게 이식해야 했던 과거의 GPU가 아니다. 사용자 데이터를 바이트 정렬하여 텍스처 메모리에 저장했던 과거와 비교하면, CUDA의 thrust 툴킷은 엄청난 발전이다.


슈퍼 컴퓨터 발전 흐름을 도외시한다면, 몇 년 후 550억 슈퍼 컴퓨터 4호기는 고철 처리 될 3호기와 동일한 신세가 될 것이다. 비슷한 수준의 계산 능력을 더 저렴한 가격으로 구축할 수 있고, 소프트웨어 지원이 풍부하다면 그것으로 이전하지 않을 이유가 없다. 물론, 550억 상당의 크레이 슈퍼 컴퓨터가 처리할 수 있는 플롭스는 20억 랙 하나의 플롭스와 비할 바가 아니다. 그러나, 550억과 클러스터 단위 당 20억은 너무나 차이가 크다. 구시대적 프로그래밍 모델 때문에 발전 가능성도 떨어지는 하드웨어를 비싼 가격에 구입하는 것보다, 관련 프로그래머를 고용하여 프로그래밍 모델을 서서히 전환하고 저렴한 가격의 우수한 하드웨어를 사용하는 것이 훨씬 낫다. 적용 성과를 평가한 뒤, 업그레이드 단위를 늘려가는 방식은 매우 추천할만하다. 바로, 스위스 기상청이 했던 일이다.


하드웨어 플랫폼의 발전 가능성과 프로그래밍 모델 전환까지 염두에 두고 준비했다면 세금을 좀 더 알뜰하게 쓸 수 있었을 것이다. 어차피 잘 맞지도 않는 기상 예보 계산 물리 모델까지 이 참에 개선할 생각을 했다면 120점이다.



2016.7.16: 프로그래밍 모델을 GPU로 옮기는게 쉽지 않다고 기성청의 이런 행동을 덮어주는 의견은 옳지 않다. 프로그래밍 모델을 전환한다는 것은, CPU의 프로그래밍 모델로서만 처리할 수 있는 데이터와 GPU의 프로그래밍 모델로 충분히 처리할 수 있는(바꿔 말하면 고속 병렬 처리를 해야 하는) 데이터를 분리하여 병렬 처리한다는 뜻이다. 최근 이런 구성을 취하지 않는 슈퍼 컴퓨터는 드물다. 스위스 기상청이 구입한 크레이 CS Storm의 개별 노드 역시 이런 구성을 가진다. 기존의 코드 전체를 GPU로 옮길 수도 없고, 그럴 필요도 없다. 그러나, 프로그래밍 모델이 과거에 머물러 있다면 하드웨어 업그레이드로 얻어지는 성능 향상을 전혀 누릴 수 없으며, 앞으로도 비효율적인 구매를 할 수 밖에 없을 것이다.