'프로그래머가 몰랐던 멀티코어 CPU 이야기'에 해당되는 글 1건

  1. 2010.09.01 [책] 프로그래머가 몰랐던 멀티코어 CPU 이야기 (3)
五感의 方向2010.09.01 23:54
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 10점
김민장 지음/한빛미디어




  art.oriented 블로그의 주인장이신 김민장님(object)이 쓰신 책이다. 블로그를 구독해본 사람은 알겠지만 컴퓨터 구조나 CPU, 컴파일러쪽에 조예가 깊으신데다가 무엇보다 나같은 평범한 사람도 편하게 이해할 수 있게 글을 잘 쓰시는데, 이 책은 거기에 더 많은 교정과 숙성을 거쳤기에 훨씬 술술 넘어간다.(그리고 무려 종이책!)

  중심 키워드를 나열해 보자면,
CPU, Pipeline, 비순차(out of order) 실행, 멀티코어, GPU & CUDA,
Speculative execution, 메모리 Prefetch, Cache, 병렬 프로그래밍
  정도가 되겠다.

  학부 시스템 프로그래밍 수업에서 나올 법한 RISC, CISC, ISA 에서부터 설명을 시작할 정도로 매우 기초적인 내용부터 설명한다. 이후 의존성과 프로세서 동작 순서, 그리고 파이프라인으로 시작하는 CPU 최적화의 역사를 짚어가는데 적절한 예시까지 들어 이해가 편하다. 특히 네할렘 등 최신 CPU 에 들어가는 구조와 CUDA, GPU 까지 어느 정도 포함하기 때문에, 트렌드를 이해하기에도 어느 정도 도움이 될 듯 싶다.

  제목에 "프로그래머"란 단어가 포함되지만 프로그래밍 스킬이나 팁 같은 직접적인 방법을 포함하진 않는다. 총 20개의 Story(챕터)로 되어 있지만, 프로세서와 HW 최적화, 어떻게 하면 더 효율적으로 명령어를 실행할 수 있는 지에 대해서 거의 대부분의 Story 를 할애하고 있다. 개인적으로 느끼기에 직접적으로 언급하는 부분은 Story 18, 19, 20 정도다.

  하지만 앞의 내용이 의미가 없는 것은 아니다. 중고등학교 시절에 의미없다고 생각했던 수학 과목들이 나중에 피가 되고 살이 되는 것을 느끼는 것처럼, 이 내용을 머리 속에 담고 있다면 앞으로 멀티쓰레드/프로세스 프로그램을 작성하는데 큰 도움이 되리라 생각한다.(당장 지난 달에 보고 수정했던 코드의 개선점이 생각나 버렸으니..) 실제로 캐시나 프리페치 등 프로세서 최적화에 사용되는 기법들은 어플리케이션을 작성할 때에도 적절하게 활용할 수 있는 기법이다.

  한가지 아쉬운 점이라면, 뒤로 갈 수록 내용이 복잡해지고 어려워지면서 오타가 자주 눈에 뜨인다는 것. 그림 번호같은 사소한 것부터 명령어 순서를 잘못 지칭함으로 인해 알고리즘 이해에 어려움을 더하는 오타가 있어 조금 아쉽다. 하지만 친절하시게도 블로그에 오타 교정 내용을 올려주셨기 때문에(http://minjang.egloos.com/2644402) 이를 미리 알고 있으면서 책을 본다면 큰 불편함 없이 읽을 수 있다.

  쉽게 읽히는 책을 추구하시느라 학부 수준의 내용을 위해 책의 절반 가량을 할애하기 때문에 지루하게 느껴지시는 분도 있을지 모르겠지만, 요즘과 같이 듀얼 - 쿼드 코어가 일반화된 시장 상황에서, 이를 타켓으로 구동하는 프로그램이나 서버 프로그램을 작성하는 프로그래머에게는 필수 도서라고 생각한다.


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by 飛烏