인텔「SW도 무어의 법칙에 따라야 한다」

일반입력 :2007/05/28 17:01

Ina Fried

데스크톱 소프트웨어의 성능을 쉽게 향상시킬 수 있는, 점점 더 빠른 속도의 칩을 여러 해 동안 공급해 온 인텔은 이제 공짜로 편승하는 시절은 지나갔다고 말한다. 이미 인텔이나 AMD와 같은 칩 제조사들은 더 빨리 실행되는 단일 두뇌가 아니라 다수의 두뇌, 즉 코어를 내장한 프로세서를 공급하고 있다. 문제는 요즘 나와 있는 대부분의 소프트웨어는 그런 종류의 기술 발전을 처리하도록 만들어져 있지 않다는 점이다. 인텔 직원인 셰카르 보카는 칩 성능이 18개월에서 2년마다 거의 두 배 정도로 향상된다는 법칙을 언급했다. 그는 "소프트웨어도 무어의 법칙을 따라야 한다"며 "소프트웨어도 2년마다 성능이 두 배가 되어야 하드웨어를 지원할 수 있다"고 말했다. 하지만 그것은 소프트웨어 업계로서는 쉽지 않은 일이다. 물론 시스템이 다수의 동시 워크로드를 처리하는 서버의 경우에는 상황이 더 좋은 편이다. 하지만 데스크톱 애플리케이션의 경우 슈퍼컴퓨터와 서버가 그 동안 일을 처리한 방식에서 몇 가지 가져올 것은 있지만, 암달(Amdahl)의 법칙이라고 하는 또 하나의 법칙이 적용된다. 그 법칙은 프로그램에 포함시킬 수 있는 병렬 처리 능력은 성격상 차례로 처리되어야 하는 작업으로 인해 제한된다는 것이다. 25일(미국시간) 보카는 몇 명의 기자들과 이야기하면서, 선택할 수 있는 다른 옵션들도 있다고 말했다. 애플리케이션은 다수의 독립적인 태스크를 처리하고, 시스템은 다수의 애플리케이션을 실행하는 방식이다. 프로그램과 시스템은 모두 사용자가 원하는 태스크가 무엇인지 생각하고 그런 식으로 프로세서 성능을 사용할 수 있다. 하지만 늘 그렇듯이 업계가 사업을 계속하는 것으로 만족한다면 소용이 없다. 마이크로소프트(MS)도 최근 비슷한 경고를 발표했었다. 지난주 로스앤젤레스에서 열린 윈도우 하드웨어 엔지니어링 컨퍼런스에서 수석 연구 및 전략 책임자인 크레이그 먼디(는 업계가 그 문제를 다루는 일을 시작하도록 촉구했다. 먼디는 그곳에서 가진 인터뷰에서 "현재 해결해야 할 과제는 퍼스널 컴퓨팅의 전체 프로그래밍 에코시스템을 대규모 애플리케이션을 신뢰할 수 있게 구축할 수 있는 새로운 수준으로 끌어 올리는 방법을 찾아내는 것이다. 그런 대규모 애플리케이션은 분산되어 있고 동시성이 매우 높으며 이 모든 컴퓨팅 성능을 활용할 수 있어야 한다. 아마 이 과제는 앞으로 2~30년 동안 해내야 할 가장 힘겨운 일이 될 것"이라고 말했다. 이번 주 초에 MS의 타이 칼슨은 다음 버전의 윈도우가 많은 수의 프로세싱 코어를 다루려면「근본적으로 달라야」한다며 프로세싱 코어가 많아지는 것은 PC에서 기본이 될 것이라고 말했다. 그는 비스타가 다수의 쓰레드를 처리하도록 설계되어 있기는 하지만, 칩에서 곧 가능하게 될 16개 이상의 쓰레드는 처리할 수 없다. 애플리케이션은 훨씬 더 뒤에 처져 있다. 칼슨은 "10~15년 정도 지나면 믿을 수 없는 컴퓨팅 능력을 가지게 될 것이다. 해결해야 할 과제는 프로그램을 만드는 방법을 아는 에코시스템을 만드는 것"이라고 말했다. 하지만 인텔의 보카는 MS나 기타 대형 소프트웨어 제조사들이 이런 변화가 오고 있음을 알고 있었음에도 불구하고 충분히 신속하게 대응하지 않았다고 말했다. 그는 자신의 주장을 설명한 후에 가진 인터뷰에서 "그들은 말은 많이 하면서도 그에 대해 많은 일을 하지는 않고 있다. 회사(MS)가 크다보니 관성이 있는 것 같다"고 말했다. 그는 회사들이 일을 하는 방식을 개편하지 않는다면 지금까지 이루었던 것과 같은 종류의 성능 향상을 이루지 못할 것이라는 사실을 인식하고 신속하게 대응해야 한다고 말했다. 그는 코어 칩 속도가 증가하지 않는다는 사실을 언급하면서 "이것은 물리적인 한계"라고 지적했다. 하지만 보카는 그런 염려를 표현하면서도 업계가 그 과제를 해결할 능력을 보여줄 것으로 확신한다고 말했다. 우선, 경쟁 때문에 혁신이 촉진된다는 것이다.보카는 "이것에 돈을 투입하지 않는 소프트웨어 (회사)가 있다면, 그것을 기회로 보는 회사도 있다"고 말했다. 그는 게임처럼 소프트웨어가 계속 발전해 온 일부 영역을 언급하면서, 결실이 나올 수 있는 다른 영역들도 밝혔다. 특히 특정한 태스크 별로 최적의 고유한 언어를 만들 수도 있다. 예를 들어 네트워킹 관련 태스크는 특정한 최적화된 네트워킹 코드로 처리할 수 있다. 인텔은 그 동안 멀티코어 성능을 활용하는 것을 목표로 직접 제작한 몇 가지 소프트웨어 툴을 발표했다. 인텔이 하고 있는 또 하나의 노력은 대학과 협력하여 병렬성에 더 많은 초점을 맞추도록 프로그래밍 교육 방식을 바꾸는 것이다. 차세대 개발자들의 머릿속에서 그런 기법이 제일 먼저 튀어나오게 하려는 것이다. 보카는 "대학교에서 시작해야 한다. 우리 같은 늙은 개에게는 새로운 기술을 가르칠 수 없는 법"이라고 말했다. @