입문자를 위한 병렬 프로그래밍
저자 : 피터 파체코 지음
역자 : 김성민
출판사 : 비제이퍼블릭 | 2015.02.26
입문자를 위한 병렬 프로그래밍.. 이 책은 출판 즉시 구매해서 보았던 책입니다.
병렬처리에 대한 관심을 가질 때 쯤 제 요구와 딱 맞는 시기에 출간되어 아무 생각도 않고 구매했는데요, 지금은 이 책이 제이펍에서 출간된 책 들 중 가장 추천하고 싶은 책입니다.
병렬처리는 이제 선택이 아닌 필수가 되어가고 있습니다. 싱글 코어의 시대는 지난지 오래되었고, 멀티코어의 중요성과 더불어 프로그램의 성능을 최고로 끌어올리기 위한 노력 중인 시대입니다.
코어의 Clock을 증가시켜 성능을 개선하던 시대는 이제 한계에 부딪혀 CPU를 여러개 함께 연산에 사용하는 멀티코어 시스템을 사용하는 지금, 병렬처리의 학습은 필수이죠.
'에이, 아직 컴퓨터 병렬처리 생각안하고 개발해도 문제없어요. 컴퓨터 성능이 얼마나 좋은데요?'
위 와 같이 말하는 개발자들을 가끔 볼 수 있는데요, 잘못된 생각이라고 분명 말씀드리고 싶습니다.
이 책을 읽으시면 더욱 그 이유를 아실 수 있을 것 같습니다.
처음 이 책은 병렬처리가 무엇인가? 라는 것 보다 왜 우리가 병렬처리를 해야하는가? 라는 질문부터 저희에게 던집니다. 솔직히 입문자용으로 석,박사들을 위한 깊숙한 지식을 서술해 놓진 않았지만,
책의 제목과 같이 입문자들에겐 더할 나위 없이 좋은 글들로 책은 시작합니다.
그럼 책의 목차를 확인해 보시죠.
목차를 보시면, 다른 책들과 목차는 별 다를게 없어보입니다. 당연해 보이는 도입부와 기술의 설명 그리고 마지막 결론까지..
하지만 책은 구성도 중요하지만 분명 내용도 중요해야 합니다.
이 책은 크게 MPI, Pthread, OpenMP를 이용한 병렬처리 기법들을 설명합니다. 코드가 완벽하게 작성되어 있진 않지만, 수도코드와 이해하기 쉽게 설명된 내용으로 인해 접근하기 어렵지 않습니다.
이해하기 힘든 내용은 표로 정리해 놓거나 수도코드로 잘 표현되어 있어 이해하기 어렵진 않습니다.
그리고 정확히 필요한 내용과 그에 맞는 표를 제공하기에 더 편하게 읽을 수 있습니다.
코드 또한 아래와 같이 주어집니다. 아래는 pthread 챕터에서 첫번째 예제로 제공되어지는 코드입니다.
필요한 부분에 주석이 있으며 코드 또한 간결하여 보기 편하실 겁니다. 모든 소스코드가 아래와 같이 주어지진 않지만, 수도코드가 잘 되어 있어 혼자서 실습해 보기에도 좋습니다.
소스 다운로드를 원하신다면 제이펍 홈페이지 ( http://www.jpub.kr/ ) 에 들어시면 쉽게 다운받을 수 있습니다.
제가 이 책에서 가장 좋았던 부분이 바로 이 연습문제(?) 같은 각 장의 문제들입니다.
아쉬운 점은 연습문제 해답을 알 수 없어 자신이 제대로 문제를 해결하였는지 알 지 못한다는 점인데요,
이게 정말 아쉬운 것 같습니다.
OpenMP, Pthread 등 병렬처리 하나의 라이브러리나 기술들을 다루는 책은 많습니다.
자바, C++, C 등 다양한 언어로 제공되어 있지만, 라이브러리 등의 사용법은 굉장히 깊이 다루고 있으나, 이 책처럼 처음부터 끝까지 여러분이 왜 병렬처리를 해야하는지는 잘 알려주지 않습니다.
도입부에서만 간단하게 설명할 뿐이죠.. 그렇기에 내가 왜 이 학문을 공부하고 있지? 이 책을 보고 있지? 라는 분들에겐 마지막까지 그 갈증을 해소시켜 줄 수 있을 것 같습니다.
해답 제공의 아쉬움 빼고는 전 이 책을 읽는 내내 너무 즐거웠습니다. 제이펍 담당자 분이 만약 읽으신다면, 해답도 제공해 주셨으면 좋겠네요 ^^;;;
전공 지식 서적을 읽으면서 즐거웠던 적도 오랜만인 것 같네요. 너무 즐겁게 봤고 병렬처리에 대한 이해도가 더욱 깊어진 것 같습니다.
병렬처리 강의를 준비 중이신 분들은 이 책 한번 사용해 보시길 추천드립니다.
저도 이 책을 기반으로 강의를 준비 중인데요 ^^ 한번 학생들에게 교육 후 반응 및 후기 올리겠습니다.
그럼 즐거운 하루 되세요 !
'Book' 카테고리의 다른 글
[Review] 열씨미와 게을러의 리눅스 개발 노하우 탐험기 (0) | 2017.01.18 |
---|---|
[Review] 객체지향의 사실과 오해 : 역할, 책임, 협력 관점에서 본 객체지향 (0) | 2015.10.20 |
[Review] 김태용의 리눅스 쉘 스크립트 프로그래밍 입문 (0) | 2015.05.11 |
[Review] 후니의 쉽게 쓴 시스코 네트워킹 (0) | 2015.04.08 |
[Review] 가장 쉬운 알고리즘 책 (1) | 2015.03.02 |