매일신문

[미리보는 '금요일에 과학터치'] 서울대가 개발한 슈퍼컴퓨터 '천둥'

사진=슈퍼컴퓨터 천둥. 이재진 교수 제공
사진=슈퍼컴퓨터 천둥. 이재진 교수 제공

CPU(Central Processing Unit)는 컴퓨터의 중앙처리장치다. 명령을 해독하고 산술 논리 연산이나 데이터 처리를 실행하는 역할을 맡고 있다. 컴퓨터의 두뇌 부분에 해당하는 셈이다. 컴퓨터의 성능을 말할 때 흔히 거론되는 것이 CPU다.

CPU의 코어란 컴퓨터의 명령어를 처리할 수 있는 프로세서를 일컫는다. 한 개의 칩에 하나의 프로세서가 집적돼 있으면 단일코어 CPU, 두 개 이상의 프로세서가 집적돼 있으면 멀티코어 CPU라고 한다. 단일코어 CPU의 성능은 보통 CPU 클락 주파수에 비례한다. 하지만 클락 주파수가 증가할수록 전력 소모량이 커지고 발열 문제가 발생하기 때문에 CPU의 성능을 증가시키기 위해 클락 주파수를 무한정 높일 수는 없다.

이러한 단일코어 CPU의 한계를 극복하고 성능을 증가시키기 위해 멀티코어 CPU가 등장했다. 이 CPU는 몇 년 전부터 슈퍼컴퓨터, 서버, 데스크탑 PC, 노트북 PC, 게임기기, 휴대기기에서 널리 쓰이고 있다.

멀티코어 시스템에서 하드웨어가 제공하는 성능을 최대한 이끌어 내기 위해서는 소프트웨어를 잘 작성하는 것이 중요하다. 또 이러한 소프트웨어를 쉽게 작성하기 위한 프로그래밍 모델(예를 들어 프로그래밍 언어) 및 개발 환경의 연구가 필수적이다. 쉽게 프로그래밍할 수 있고 고성능을 이끌어 낼 수 있는 좋은 프로그래밍 모델에 대한 연구는 30여 년 전부터 진행돼 왔으나 아직 제대로 풀리지 않는 난제다.

서울대 컴퓨터공학부 이재진 교수 연구팀은 2009년부터 교육과학기술부의 창의적 연구 사업의 지원으로 매니코어 프로그래밍 연구단을 운영하고 있다. 연구단의 연구 주제는 많은 수의 프로세서 코어가 한 칩에 집적됐을 때 이를 잘 프로그래밍하고 디버깅할 수 있는 프로그래밍 모델이다.

프로그래밍 모델은 프로그래머와 컴퓨터 간의 인터페이스. 프로그래머는 컴퓨터를 보고 프로그래밍하는 것이 아니라 프로그래밍 모델을 보고 컴퓨터 프로그램을 작성한다. 프로그래밍 언어, 컴파일러, 실행 시스템, 라이브러리 등이 프로그래밍 모델에 포함된다.

멀티프로세서 시스템에서 쉬운 프로그래밍과 고성능이라는 지향점을 동시에 만족시키는 프로그래밍 모델은 지난 30년간 세계적으로 많은 시도가 있었음에도 아직 마땅한 해답이 없다. 서울대의 매니코어 프로그래밍 연구단에서 개발한 프로그래밍 모델로 2011년에 공개한 SnuCL(http://aces.snu.ac.kr)이 있다. 이러한 프로그래밍 모델의 성능 평가를 위해 연구단에서는 슈퍼컴퓨터를 자체 연구개발하고 있다.

이번 강연에서는 매니코어가 등장하게 된 배경과 현재의 동향을 소개한다. 또 이 같은 동향이 슈퍼컴퓨터에 미친 영향과 세계적으로 슈퍼컴퓨터의 개발이 어떤 식으로 이뤄지고, 어떻게 활용되고 있는지를 살펴본다. 멀티코어로서 대략 8~16개 이상의 코어가 한 칩에 집적돼 있을 때 매니코어 CPU라고 부른다.

또, 서울대에서 연구'개발하고 지난해 11월 성능 면에서 세계 277위, 저전력 소모 면에서 세계 32위를 차지한 슈퍼컴퓨터 천둥을 소개한다. 이러한 슈퍼컴퓨터를 제대로 프로그래밍하는 것이 얼마나 중요한지 설명하고, 이 작업을 쉽게 하기 위해 서울대가 개발한 프로그래밍 모델인 SnuCL도 소개한다.

최신 기사

많이 본 뉴스

일간
주간
월간