인텔 DPD Tech to the Future 블로거 미팅

2010.05.17 13:35 IT·인터넷/세미나·행사

지난 5월 12일에 "인텔 DPD Tech to the Future 블로거 미팅"이 있어서 다녀왔습니다. 인텔이 CPU나 하드웨어 제품만 생산하는 것이 아니라 소프트웨어도 함께 개발하고 있다는 것을 미팅 전에도 알고 있었습니다. 그러나 이번 미팅에서 처럼 인텔에서 제공하는 소프트웨어 개발 툴에 대해 인텔 관계자분과 가까이서 얘기를 나누기는 처음입니다.

멀티 코어 시대의 올바른 프로그래밍

미팅의 주인공은 당연 패러렐 스튜디오가 될 줄 알았는데, 주제는 멀티 코어를 제대로 이용하려면 어떻게 프로그래밍을 해야 하나였습니다.

컴퓨터를 구매할 때면 코어가 몇 개인지 따지고, 가격 차이가 나지 않으면 코어 수가 많은 제품을 구매하는 것에 신경을 썼어도, 소프트웨어 프로그래머이면서도 멀티 코어를 활용하여 프로그램을 작성해야 한다는 것에는 별로 신경을 쓰지 않았습니다.

일반 프로그램 vs 멀티 코어를 활용하는 프로그램

그러나 당연한 얘기이겠습니다만, 멀티 코어를 제대로 활용할 수 있다면 단일 코어를 이용하는 프로그램보다는 경우에 따라서 매우 빠르고 효율적인 프로그램이 될 것입니다. 이번 미팅에서 들은 얘기입니다만, 3D 렌더링 프로그램으로 유명한 마야를 멀티 코어를 사용할 수 있도록 수정했더니 렌더링 속도가 7배나 빨라 졌다고 합니다. 7배 이면 매우 큰 차이죠.

앞으로 코어 수는 더욱 늘어날 것입니다. 가격 경쟁력을 높이기 위해서도 코어 수는 더 많아질 것입니다. 앞서 말씀드린 바와 같이 CPU 코어 수에 연연하지 않고 프로그램을 작성해 왔는데, 만일 멀티 코어에 맞추어 프로그램을 작성해야 한다면 CPU를 직접 생산하는 인텔에서 방법을 제시하는 것이 자연스러운 일일 것입니다. 그래서 인텔에서 소프트웨어도 함께 개발하는 것이겠지요.

그러나 멀티 코어를 적용하기 위한 프로그래밍은 만만한 것이 아니었습니다. 지금까지 단일 코어 프로그래밍만 해 왔다고 멀티 코어 프로그램에서 주의해야 하고 조심해야 하는 내용을 모르는 바는 아니지만, 하나의 루틴이 동시에 분리되어 실행이 된다고 한다면 변수 관리부터 매우 조심해야 하겠습니다.

그렇다고 한다면 이미 진행 중인 프로그램에 대해서는 멀티 코어를 적용하기 위해 프로그램 소스 코드를 수정해야 하는 부담이 있겠습니다만, 다행히 인텔의 패러렐 스튜디오를 이용하면 기존 소스에 조건 컴파일러를 추가하는 것만으로도 멀티 코어를 사용할 수 있게 해주어 작업자의 부담을 많이 줄여 줄 것으로 생각됩니다. 물론 더 많은 방법이 있을지 모르겠습니다만.

앞으로 멀티 코어를 적용했느냐 또는 하지 않았느냐에 따라서, 같은 프로그램이라도 어떤 프로그램은 코어 수가 많아지면 많아질 수록 빠르고 효율이 높아지지만, 다른 어떤 프로그램은 코어 수가 늘더라도 별반 성능 향상을 볼 수 없는 그런 차이가 생길 것입니다. 미팅 중에도 멀티 코어를 적용하지 않은 프로그램과 멀티 코어를 적용한 프로그램을 실행했을 때의 차이를 보여 주었는데, 확실히 빠른 모습을 보여 주었습니다.

개발자 입장에서 생각하는 아쉬운 점

그러나 아쉬운 점도 있었습니다. 우선 독립 개발환경을 제공하지 않는다는 것이 가장 아쉬운 부분이었습니다. 패러렐 스튜디오는 통합 개발환경을 제공하는 대신에 Microsoft Visual Studio에 플러그인 방식으로 설치되어 실행하기 때문에, 컴파일 과정과는 별도로 멀티 코어 적용에 문제가 없는지 따로 검사를 해야 합니다.

그런데 확인하는 과정이 컴파일처럼 소스 코드를 분석하는 것이 아니라 실행하는 과정에서 찾아냅니다. 그렇다고 한다면 프로그램에서 멀티 코어가 적용된 모든 루틴을 실행해서 확인해야 한다는 것인데, 시간이 짧은 루틴이면 모를까 짧지 않다면 때로 큰 부담이 될 수 있을 것입니다.

어쩌면 이 방법이 가장 확실한 방법일지 모르겠습니다. 멀티 코어를 적용한 부분만 따로 떼어 내어 확인하는 방법으로 시간적인 부담을 덜어 낼 수도 있겠습니다. 그러나 개발 생산성이 떨어지지 않을까 염려됩니다. 그러므로 멀티 코어 적용을 좀 더 쉽게 하기 위한 방법까지 제공해 주었으면 하는 생각이 듭니다. 그렇게 하기 위해서는 Visual Studio의 플러그인 방식으로는 부족하지 않을까 생각됩니다.

멀티 코어 수가 많아질수록 강력해 지는 프로그램

개발자 입장이다 보니 멀티 코어를 활용하는 것이 좋은 줄은 알면서, 벌써 어떻게 하면 편하게 일하면서 농땡이 부릴지 부터 생각하는 것 같습니다. 그러나 멀티 코어가 흔해진 요즘, 멀티 코어를 활용하는 프로그램 코딩은 필요할 것으로 생각됩니다. CPU의 코어 수가 증가할수록 강력해지는 프로그램, 마다할 이유가 없겠지요. 그래서 앞으로는 소프트웨어의 사양에 "멀티 코어 지원" 이라는 항목이 추가된 제품이 많아지지 않을까 생각해 봅니다.

이 댓글을 비밀 댓글로
    • 그 나그네
    • 2010.05.17 15:52
    알툴바 검색에서 새창에서 검색결과 보기에 체크를 하면 자꾸 익스플로러가 떠서 불편합니다...
    jw에서 새탭으로 되었던 적이 있었던 것 같은데 방법이 없을까요?
    • 죄송하게도 IE8로 버전업하면서 알툴바도 함께 업그레드되면서
      말씀하신 문제점이 생기는 것으로 생각됩니다. 아무래도 jwBrowser에서 해결하기
      어려울 것으로 생각됩니다. 제대로된 답변을 드리지 못해 죄송합니다.
    • bluegach
    • 2010.05.17 16:24
    jwFreeNote를 며칠 전에 사용해봤는데 너무 좋네요
    왠만한 상용툴 이상의 성능이네요
    잘 쓰겠습니다. ^^
    • 호박씨
    • 2010.05.17 20:53
    화면 확대는 어떻게 해요?
    글씨크기 말고요 화면이 작아서 글씨가 잘 안 보여요.......
    • jwFreeNote요? 아니면 jwBrowser를 말씀하시나요?
      안타깝게도 jwFreeNote에서는 확대 축소가 안 됩니다.
      대신에 jwBrowser에서는 Ctrl-숫자키(+,-)를 이용하시면
      확대 축소가 가능합니다.
    • Thinking
    • 2010.05.17 21:23
    애플 OS X 10.6의 GCD에 관한 자료를 한번 찾아보시지요...
    Kernel 수준에서 멀티코어를 지원합니다.
    제가 봤던 뉴스에 대한 기억에 보면 BSD UNIX Kernel 에서도 GCD를 지원하는 것으로 알고 있습니다.
    • 2010.05.18 10:00
    비밀댓글입니다
  1. 음.. 8core 시스템에 가장 ideal 한 상황에서의 처리능력인가보네요
    서로 비종속적으로 연산이 가능하다면 7배까지 올라갈수는 있지만
    연산처리 과정이 종속적이게 되면 불가능하니 말이죠.

    아무튼 멀티 코어 + GPU 멀티 프로세싱 시대가 오면....
    전기는 어떻게 감당하죠? ㅋㅋ