티스토리 뷰

그냥 궁금해서 서적사이트에 "멀티코어"라는 키워드로 검색을 해봤다.


딱 25건 나온다. 그중에 논문이 pdf형식으로 변환된 자료를 제외하고 나면 실제로는 6권정도밖에 없다. 뭐 기타적으로 OpenCL이나 OpenMP, CUDA같은 병렬처리용 프로그램으로 키워드를 넣어봐도 책이 그렇게 많지 않다. 사실 요즘 우리가 쓰는 컴퓨터의 코어 갯수는 점점 증가하고 있지만, 실질적으로 이걸 활용한 프로그램을 개발하기 위해서는 외국서적을 참고해야 되는게 현실이다. 그나마 어떤 한 기술에 치중되어 있는 책들이 대부분이기 때문에 선뜻 고르기가 힘들것 같다.

 나도 사실 연구실에서 Manycore기반의 시스템을 다뤄보면서 과연 그걸 활용할 수 있을만한 책이 있을지 많이 찾아봤다. 그런 시스템은 학부에 있을 때는 한번도 다뤄보지 않았기 때문에 뭔가 운영체제 내용에 기반하면서 조금씩 설명해줄만 책이 필요했었는데 이 책이 그런 목적에 부합하지 않았나 생각된다.



이 책의 내용은 말그대로 멀티코어를 활용할 수 있는 어플리케이션 개발에 필요한 기술들을 소개하고 있다. 어느 한부분에 치중한 것이 아니라, 여러기술을 두루두루 소개한다. 표지에도 나와있는 것처럼 서버에서 많이 운용되는 솔라리스나 Linux에서 활용할수 있을 만한 POSIX 관련 내용, 더불어 윈도우내에서 Thread를 활용해서 프로세스들이 통신할 수 있는 방법들을 제시하고 있다. 

 개인적으로 생각하기엔 멀티코어 운영체제나 프로그램의 핵심은 IPC가 아닐까 생각한다. 어차피 한가지 일을 여러 프로세스 또는 쓰레드가 나눠서 처리하기 위해서는 무엇보다도 프로세서끼리 서로의 상태에 대해서 인지하고 Resource를 공유하는데 있다. 아마 운영체제를 들은 사람이라면 Mutex라던가 Message Queue, Semaphore라는 단어들이 생소하지 않을 것이다. 그런 단어들이 이책에서는 많이 등장한다. 

 그런데 그 외적으로는 물론 이런 어플리케이션 개발에도 도움이 되겠지만, 전반적인 멀티코어 시스템에 대한 이해를 돕는데도 좋은 책이라고 생각한다. 이 책의 Chapter 4까지는 운영체제 시간에 배웠던 내용들이 멀티코어와 결합했을 때 어떤식으로 설명될 수 있는지를 잘 설명하고 있다. 그래서 조금 운영체제 내용이 가물가물한 상태에서 서두를 읽고나면 "멀티코어 시스템이 이런식으로 돌아가는구나" 라고 대략 느낄만한 내용으로 구성되어 있다. 그래서 뭔가 수업을 듣고 쓰레드 생성 예제같은 걸 해보고 싶은 사람에게는 정말로 좋은 책이 될 것같다. 참고로 각 기술별 예제들이 잘 정리되어 있어서 한번 직접해보고 그 결과를 바로 확인할수 있다.

 요새 듣고 있는 수업이 컴파일러 특강인데, 그 수업에서는 Architecture별로 Compiler가 어떤식으로 동작하는지에 대한 이야기가 많이 나온다. 그 중에는 Code optimization 에 대한 것도 포함되어 있는데 여기서 이와 관련된 내용이 나온다. 물론 자세하게는 아니지만 어느정도 이 책의 제목에서 요구하는 100% 성능에 부합하는 프로그램을 개발하기 위해서는 컴파일러의 역할도 어느정도 있다.


 지금까지 뭔가 어려운 소리만 계속했다. 한마디로 요약하자면 뭔가 컴파일러 수업도 듣고, 컴퓨터 구조 수업도 듣고. 운영체제 수업도 들은 사람한테는 내가 느낀 것처럼, "아 뭔가를 해볼 수 있겠구나" 하는 확신이 생길거라고 본다. 그런데 그게 아니고, 그냥 호기심에 멀티코어 어떻게 개발하나 궁금한 사람한테는 글쎄....다. 얇은 책에 너무 많은 걸 담고 있어서 조금 어려워보일만 하다. 참고로 이 책은 거진 이론반 예제반인 책이고, 사진이 거의 없는 책이다.(...) 그래서 읽는 내내 지루함을 느낄 수 있을텐데, 그 내용에 중점을 두고 읽는다면 분명 얻어가는게 많을 것 같다.


PS: 거진 모든 번역책들이 그런데 왜 굳이 영어단어를 번역하려고 하는지 잘 모르겠다. 어차피 이런 기술의 태생이 외국에서 온거라 단어도 영어로 된게 많기 때문에 오히려 그단어 그대로 소개하면 검색하기도 좋을듯한데 굳이 번역해서 뜻을 찾기 어려운 내용이 있다. 이책도 전체적으로는 큰 무리가 없지만 가끔 읽으면서 "왜 이건 번역했는데 저건 번역하지 않았을까?" 하는 부분이 몇군데 보인다. 아마 그 부분은 참고해서 보면 좋겠다. 참고로 이런 사례는 APUE라고 알고 있는 책에서도 많이 나타나서 심지어는 번역서를 번역(?)하는 사전까지 존재한다. 관심있는 사람은 링크 를 참고해보면 된다.

댓글