(MIT's Swarm chip design can unlock the full power of parallel computing (Credit: Christine Daniloff/MIT) )
10여년 전만해도 CPU의 성능은 클럭과 직결되는 문제였습니다. 인텔과 AMD 두 회사는 모두 클럭을 높이는데 사활을 걸었습니다. 하지만, 높은 클럭은 높은 전력 소모 및 발열과 직결되는 문제이기도 했습니다. 결국 이 회사들은 CPU의 숫자를 늘리는 방식으로 대응했습니다.
그 결과 CPU 코어는 듀얼코어에서 쿼드코어에서 더 늘어나 이제는 수십 개의 코어를 탑재한 제온 CPU까지 등장했지만, 한 가지 변하지 않은 것이 있습니다. 상당수의 소프트웨어는 싱글 쓰레드에서 작동한다는 것이죠. 이는 대부분의 코드가 순차적으로 작동하는 알고리즘에 최적화되어 있기 때문이기도 합니다.
물론 CPU 코어의 증가에 따라서 점차 멀티 코어에 적합한 병렬 연산이 강조되었고, 이제는 여러 개의 코어를 효과적으로 사용하는 프로그램 역시 증가하고 있지만, 병렬 연산을 위해서는 더 복잡한 코드가 필요하다는 점은 변하지 않았습니다. 따라서 사용자들은 일반적으로 코어 숫자가 많아짐에도 불구하고 체감 성능의 차이를 별로 느끼지 못하는 것이 현실입니다.
MIT의 컴퓨터 과학 및 인공 지능 연구소 Computer Science and Artificial Intelligence Laboratory (CSAIL)의 다니엘 산체스(Daniel Sanchez) 교수가 이끄는 연구팀은 새로운 형태의 멀티코어 아키텍처를 선보였습니다. 스웜(Swarm)이라고 명명한 이 멀티코어 칩은 단순히 코어 숫자만 많은 것이 아니라 쉬운 병렬연산 프로그래밍이 가능하도록 아키텍처를 바꿨다는 데 특징이 있습니다.
스웜은 수십 개의 명령어 만큼이나 작은 작업(small task)을 매우 효과적으로 처리할 수 있습니다. 점차 프로세서들이 많은 명령어를 동시에 처리하는 방향으로 진화한 것과는 반대입니다. 이는 작업을 잘게 쪼개서 처리하는 데 유리하다고 합니다.
두 번째로는 여러 개의 병렬 연산이 서로 충돌하는 것을 방지하는 별도의 회로를 내장해 병렬 연산에서 생길 수 있는 에러를 줄이고 속도를 높였다고 합니다. 이외에도 병렬 연산과 프로그래밍에 최적화된 특징들을 가지고 있다고 합니다.
그 결과 프로그래머는 이전보다 매우 간결한 코드로 빠른 병렬연산이 가능해졌습니다. 주로 사용되는 6가지 알고리즘을 기반으로 속도를 측정한 결과 스웜 아키텍처는 3-18배 정도 더 빠른 연산을 기존의 1/10 수준에 불과한 병렬연산 코드로 수행할 수 있었습니다. 가장 극적인 경우는 75배까지 빨랐습니다.
쉽게 병렬 코드를 작성하고 빠른 속도의 이점을 누릴 수 있다면 점차로 멀티코어화 되가는 추세를 생각할 때 반가운 소식이 아닐 수 없습니다. 솔직히 제가 초보라서 그런 것도 있겠지만, 병렬 연산을 위한 R 코드 역시 매우 어려운 것 가운데 하나였습니다. 쉽게 코딩하고 멀티 쓰레드의 이점을 누릴 수 있다면 아마도 이를 마다할 사람은 없겠죠.
다만 이것이 스웜 아키텍처가 바로 상용화 될 수 있다는 의미는 아닙니다. 그보다는 새로운 기술적 가능성을 제시했다는 정도일 것입니다. 이를 x86이나 ARM 같이 현재 널리 사용되는 프로세서에 적용할 수 있고 여기에 맞는 언어가 있어야 실제로 우리가 체감할 수 있는 향상이 있을 텐데 과연 그렇게 될 수 있을지 궁금합니다.
참고
댓글
댓글 쓰기