단일 코어 프로세서의 성능 증가가 야기하는 전력 소모와 발열 문제 같은 제약 조건이 없는 멀티코어 프로세서가 등장해 몇 년 전부터 데스크탑 PC, 노트북 PC, 게임기기, 휴대기기에서 널리 쓰이고 있다. 이 같은 현상을 이해하기 위해서는 멀티코어의 세계를 살펴볼 필요가 있다.
중앙처리장치(CPU'Central Processing Unit)는 컴퓨터의 모든 것을 통제하고 제어하는 역할을 한다. 인간으로 치면 두뇌인 셈이다. 휴대전화, 네비게이터, 디지털 TV, 슈퍼컴퓨터 등이 모두 CPU를 이용한 전자기기들이다. 트랜지스터는 신호를 증폭하거나 스위치의 역할을 하는 반도체 소자로 전자회로를 구성하는 기본 단위 중 하나다.
집적회로는 CPU처럼 반도체 기판 위에 구현된 회로다. 웨이퍼(wafer)는 많은 수의 집적회로가 구현되는 얇은 반도체 기판을 의미한다. 한 개의 CPU 코어(core)는 한 개의 처리장치를 뜻한다. CPU 클락(clock)은 CPU를 구성하는 각 요소들이 올바르게 협업하기 위해 기준이 되는 시계다.
CPU의 성능은 집적된 트랜지스터의 개수, CPU 코어 클락 주파수에 비례한다. 하지만 CPU 코어 클락 주파수가 증가하면 전력 소모가 커지고 열도 더 많이 발산되기 때문에 성능을 위해 무한정 클락 주파수를 증가시킬 순 없다. 이를 전력 장벽(Power Wall)이라고 한다. 전력 장벽을 극복하려면 클락 주파수를 고정시키고 칩당 코어의 개수를 증가시켜야 한다.
칩당 코어의 개수는 거의 2년에 2배씩 증가하는데 대략 8~16개 이상의 프로세서 코어가 한 칩에 집적되어 있을 때 매니코어 CPU라고 부른다.
프로그램의 제작, 디버깅, 고성능 추구 분야는 전통적인 멀티프로세서 시스템에서 지난 30년간 해결하지 못한 문제들이다. 프로그래밍 모델의 역할이 그만큼 중요하다는 뜻이다. 프로그래밍 모델은 고성능과 쉬운 프로그램이라는 두 가지 상충되는 목표를 추구한다. CUDA, OpenCL 등 새로운 프로그래밍 모델이 개발되는 이유다.
현재 16개의 코어가 집적된 매니코어 CPU가 서버용으로 판매되고 있으며 8개의 코어가 집적된 데스크탑용 CPU도 출시되었다. 이런 동향은 매니코어 컴퓨터시스템의 일용품화와 컴퓨터 하드웨어의 패러다임 전환을 의미한다. 모바일 임베디드 기기, 데스크탑 컴퓨팅, 서버 컴퓨팅, 슈퍼컴퓨팅 분야의 패러다임 전환을 야기한 것이다.
서울대 컴퓨터공학부의 이재진 교수 연구팀은 2009년부터 교육과학기술부의 창의적 연구 사업의 지원으로 매니코어 프로그래밍 연구단을 운영하고 있다. 연구단의 연구주제는 많은 수의 프로세서 코어가 한 칩에 집적되었을 때 이를 잘 프로그래밍하고 디버깅할 수 있는 프로그래밍 모델이다. 프로그래밍 모델은 프로그래머와 컴퓨터 간의 인터페이스인데, 프로그래머는 컴퓨터를 보고 프로그래밍하는 것이 아니라 프로그래밍 모델을 보고 컴퓨터를 프로그램한다. 프로그래밍 언어, 컴파일러, 실행 시스템, 라이브러리 등이 프로그래밍 모델에 포함된다.
멀티프로세서 시스템에서 쉬운 프로그래밍과 고성능의 달성을 동시에 잘 만족시키는 프로그래밍 모델은 지난 30년간 세계적으로 많은 연구가 되어 왔으나 아직까지 마땅한 해답이 없다. 서울대의 매니코어 프로그래밍 연구단에서 개발한 프로그래밍 모델로는 2011년에 공개한 SnuCL(http://aces.snu.ac.kr)이 있다.
댓글 많은 뉴스
국힘 김상욱 "尹 탄핵 기각되면 죽을 때까지 단식"
[단독] 경주에 근무했던 일부 기관장들 경주신라CC에서 부킹·그린피 '특혜 라운딩'
최재해 감사원장 탄핵소추 전원일치 기각…즉시 업무 복귀
"TK신공항, 전북 전주에 밀렸다"…국토위 파행, 여야 대치에 '영호남' 소환
헌재, 감사원장·검사 탄핵 '전원일치' 기각…尹 사건 가늠자 될까