컴퓨터칩의 클럭이 점점 빨라지지 않고 있다. 성능 향상을 유지하기 위해서 칩제조업체들은 프로세싱 유닛 또는 코어들을 칩에서 이용하는 것 대신에 병렬의 컴퓨테이션을 실행시키고 있다.
그러나 컴퓨테이션을 칩 내부에서 분할하는 방법은 성능에 대한 상당한 차이를 만들어낼 수 있다. 그래서 2013년에 발표한 논문에서 MIT 전기공학 및 컴퓨터과학과 Daniel Sanchez 교수와 그의 학생인 Nathan Beckmann은 멀티코어 칩의 메모리 뱅크의 데이터를 확실하게 분산시켜주는 시스템을 개발한 내용을 발표했었다. 이 시스템은 실제로 에너지 효율성을 증가시키면서 평균적으로 18%의 실행시간을 향상시켰다.
이번 달 국제 고성능 컴퓨터 구조 심포지엄의 전기 및 전자엔지니어협회(Institute of Electrical and Electronics Engineers` International Symposium on High-Performance Computer Architecture)에서 Sanchez 연구그룹의 멤버들은 시스템 확장에 대한 연구로 최고의 연구논문상을 받게 되었다. 이 시스템은 데이터뿐만 아니라 컴퓨테이션의 분산을 제어할 수 있는 것이다. 64 코어 칩을 포함하는 시뮬레이션에서 이 시스템은 컴퓨테이션 속도가 46% 증가하였으며, 파워소비는 36% 감소하였다.
“현재 성능을 향상시키는 방법은 더 많은 코어를 첨가하거나 대규모 병렬시스템로 변경하는 것이지만, 주요한 문제점은 통신과 메모리 액세스라는 것을 우리가 실제로 보게 된다는 것이다. 이전 프로젝트에서 우리가 했었던 작업의 대부분은 데이터를 컴퓨테이션에 가깝게 배치하는 것이다. 그러나 우리가 알아낸 것은 얼마나 잘 데이터를 근접하게 배치하느냐에 따라서 컴퓨테이션이 얼마나 중요한 영향을 받게 되는가라는 것”이라고 Sanchez가 말했다.
컴퓨테이션과 데이터를 공동으로 할당하는 문제는 칩 디자인에서 배치 및 배선이라는 기본적인 문제 중 하나와 매우 유사하다. 배치 및 배선 문제는 논리 회로셋의 사양을 가지고 시작하게 된다. 그리고 목표는 칩에서 그것들을 재정렬하여 동작하는 회로 요소들간에 거리를 최소화하는 것이다.
이 문제는 NP 하드(NP-hard)라는 것으로서 어떤 사람들이 알고 있는 한 심지어 적절한 사이즈의 칩에서도 세계의 모든 컴퓨터는 최적의 답을 찾을 수 없다. 그러나 칩제조업체들은 완전히 최적인 것은 아니지만 실제로 잘 동작하는 수많은 알고리즘을 발전시키고 있다.
64 코어 칩에서 컴퓨테이션과 데이터를 할당하는 문제를 해결하기 위해서 이러한 알고리즘들은 수 시간 동안에 해결방법을 찾을 수 있게 될 것이다. Sanchez, Beckmann, Sanchez 연구그룹의 또 다른 학생인 Po-An Tsai는 자신들만의 알고리즘을 개발하였으며, 이것은 표준 배선 및 배치 알고리즘과 비교하여 99% 이상의 효율성을 가진 방법을 찾을 수 있게 해주었다.
“우리는 먼저 데이터를 대략적으로 배치하였다. 그러면 칩 내부에서 너무 많은 메모리 뱅크를 갖지 않거나 모든 데이터를 갖지 않고도 주변의 데이터를 분산시킬 수 있다. 그러므로 당신은 데이터에 가깝게 할 수 있도록 컴퓨테이션 스레드를 배치하는 방법을 알 수 있게 되며, 스레드의 배치에 의해 데이터의 배치를 개선할 수 있게 될 것이다. 3단계의 해결방법을 통해서 문제를 해결하게 되는 것”이라고 Sanchez가 말했다.
기본적으로 이 처리과정은 반복되기 때문에 컴퓨테이션을 가지고 데이터 배치를 해결하기 위해서 다시 재정렬하게 된다고 Beckmann이 덧붙였다.
MIT 연구원들이 개발한 시스템은 칩의 동작을 모니터하였으며, 25밀리초마다 데이터와 스레드를 재분산하였다. 이것은 매우 빠르게 보이지만, 컴퓨터칩이 5천 만 개의 동작을 수행하는데 충분한 시간이다.
이 시간 동안에, 모니터는 다른 코어들이 메모리로 전송한 요구들을 무작위로 샘플링하게 된다. 그리고 단축된 형태로 자신의 메모리 회로 내에서 요구받은 메모리 위치를 저장하게 된다.
칩 상의 모든 코어는 자체적인 캐시를 가지게 된다. 캐시는 국부적인 고속의 메모리 뱅크로서 자주 사용되는 데이터를 저장하게 된다. 이 샘플들을 기반으로 모니터는 각 코어가 요구하게 될 캐시의 공간을 추정하게 되며, 코어들이 어떤 데이터를 액세스하는지를 추적하게 된다.
모니터는 칩 면적의 1% 정도를 차지하게 되는데, 그렇지 않다면 이것이 추가적인 컴퓨테이션 회로에 할당될 수 있게 된다. 그러나 제조업체들이 상당한 성능 향상을 위해서 최소한의 비용을 들일 것이라고 Sanchez는 생각하고 있다.
“이것은 대규모의 한림원(National Academy) 연구이며, 컴퓨테이션의 중요성에 대하여 DARPA가 후원하는 연구이다. 이 연구에서 실제 컴퓨테이션 자체적인 것보다 컴퓨테이션에 의해 구동되는 피연산에서 더 많은 에너지가 소비된다는 것도 볼 수 있었다. 몇 가지의 경우에서는 두 자리 수가 넘기 때문에 반드시 그것을 하지 않아도 된다는 것을 의미한다”고 Madison에 있는 위스콘신대학교 컴퓨터과학과 David Wood 교수가 말했다.
“MIT 연구원들은 실질적인 문제를 해결할 수 있는 제안을 하고 있으며, 몇 가지 놀라운 결과를 보여주고 있다. 이것은 중요한 문제이며, 이 연구결과는 매우 유망한 것으로 보인다”고 Wood가 말했다.
출처 KISTI 미리안 『글로벌동향브리핑』