리뷰: The Art Of Multiprocessor Programming

[genie 9780123705914]

특징: (공유메모리를 사용한) 멀티코어 프로그래밍 위주로 기술된 책이지만, 이론 쪽의 비중이 매우 충실하다 — 가능한 씨나리오의 나열과 고안된 알고리즘에 대한 수학적인 증명과 설명은 꽤 간결하다. 그리고 이런데 익숙하지 않더라도 책을 보는데 큰 무리는 없다.

처음 1/3은 이론, 그 다음 1/3은 이론과 구현이 섞인 상태로(compare-and-swap or compare-and-set 연산들을 이용한 것 포함), 마지막 1/3은 실제적인 것(고병렬 자료구조들은 정말 이 책의 백미다)들로 구성되어 있다. STM을 Haskell에 구현하기도 한 저자답게, 구현 코드의 질도 상당히 좋다.
하지만 가끔 코드에 대한 참조가 틀린다거나(지정한 번호 말고 다른 번호의 코드를 설명한다거나), 약간의 문제점을 내포한 코드도 있는 듯 하다.

장 점: 이론과 실제의 적절한 균형 — 보통 구현 얘기만 하거나, 학교 교재에 가까운 이론서 위주로 책이 나오니 — 이라는 점에서 앞으로의 대세일 수 밖에 없는 멀티코어 프로그래밍 쪽에 아주 유용한 책인 것 같다. Java의 concurrent 팩키지를 써서 독자가 순간순간 기억해야할 코드의 양을 적당히 유지해준다는 점도 만족스럽다.

단점: 코드가 Java 를 기준으로 작성되기 때문에, Java의 synchronized 블럭이나 Concurrent 팩키지의 내용들을 미리 알아야 한다. 그리고 이런 면들을 포함해서 책 자체가 멀티코어/멀티스레딩 프로그래밍 경험없이 읽기 쉬운 책은 아니다. 물론 부록의 내용으로 어느 정도 보충을 해주긴 하지만, 읽는데 경험이 필요하다는 것은 그런대로 단점.

즉, OS 정도는 수강하고 — 하다못해 시스템 프로그래밍 정도는 수강하고 — 읽을 것을 권하는 책. 더 이상 개별 코어의 속도는 거의 증가하지 않을 것이니 성능 문제에 대해 생각해보고 있다면 한 번 읽어도 좋은 것 같다. 특히 OS 시간 등에서 배우는 동기화 문제라거나, 병렬처리 수업 같은데서 배우는 성능 평가 개념들도 이론적으로 잘 정리해줘서 매우 유용한 책…이라고 생각 중.

지금 하고 있는 작업이 끝나면 다시 한 번 포스팅을 할듯(?)

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

11 Comments

  1. 번역서 준비하던데, 전 기다려보렵니다. 요즘엔 얼랭을 공부하는데, 일단 이 정도로 만족하고 다른 걸 하면서 기다리면 되겠죠. ㅋ

  2. 흠, 블로그 스킨 바꾸셨군요. 훨씬 좋아 보입니다. – 그리고, 동반자와 함께 하시게된 일 축하드립니다. ^^

  3. 이 책 번역되는 순간 이 부서에 바로 퍼질 듯 ;;; 다들 번역서 없어서 울고 있는 듯한 분위기.

  4. 비오 / 기타등등의 지원을 해준다는 얘기로 듣겠음

    kimsama / 이전 스킨으로 되돌린건데 많은 분들이 좋아하시네요 :) 축하인사는 감사히 ~_~

    수원 / …근데 이제야 시작이거든요(뭐가)

Leave a Reply