본문 바로가기

일상 이야기/추천도서

멀티코어 애플리케이션 프로그래밍


멀티코어 애플리케이션 프로그래밍


소프트웨어 개발자라면 누구나 성능을 올리기위해 많은 고심을 하게 됩니다. 저 역시 개발을 해오면서 성능에 대한 이슈는 항상 고민하게 되는 문제점이기도 하구요. 특히나 저같이 모바일 개발자라면 고성능에 대해서는 굉장히 민감한 부분이라고 생각합니다.

프로세스의 성능을 최대한 끌어 올려 성능을 극대화 하고 싶다면 이책 "멀티코어 애플리케이션 프로그래밍" 책을 강력히 추천 합니다.

다소 어려운 내용이기는 하지만 인내심을 가지고 끝까지 읽어 나간다면 충분히 만족할 만한 성과를 얻으실거라 믿어 의심치 않습니다.



멀티코어 애플리케이션 프로그래밍?


이책은 총 11장으로 이루어져 있으며 병렬화 방법에 대해 여러 방법을 두루 설명해 주고 있습니다.

특정 플랫폼만이 아닌 여러 종류의 운영체제와 프로세서에 대해서도 다루고 있기도 하죠.


1장 - 하드웨어와 소프트웨어의 개념 소개

2장 - 애플리케이션 최적화

3장 - 멀티코어 시스템의 활용방법

4장 - 멀티 쓰레드의 안전한 데이터 공유

5장 - POSIX 쓰레드를 이용한 병렬 애플리케이션 개발 방법

6장 - WINDOW 환경에서 네이티브 쓰레드 개발방법

7장 - OpenMP등 컴파일러에 의해 제공되는 자동화된 병렬화 기능

8장 - 개발자가 책임지는 고수준 최적화 쓰레드 개발 방법

9장 - 최적의 쓰레드 성능 발휘 방법론

10장 - 병렬 프로그래밍의 새로운 기술들

11장 - 전체 내용정리


책에 대한 상세 내용 보기 ▶ http://hanb.co.kr/book/look.html?isbn=978-89-7914-928-9 


멀티코어 애플리케이션 프로그래밍 이러한 장점이 있다.



1. 멀티 플랫폼에서 적용이 가능하다.

책의 제목처럼 이 책에서 설명하는 내용들은 멀티코어 애플리케이션을 개발하는 방법에 대해서 설명해 주고 있는 책입니다. 윈도우 기반의 PC뿐만 아니라 리눅스나 유닉스에서도 실행 가능한 프로그램을 만들때 필요한 기술들 까지 모두 설명해 주고 있어서 많은 도움이 됩니다.

                                                                                                                                         

2. 충분한 설명과 예제 코드를 통해 이해도가 높다.

대부분의 이론서들은 책에 글자를 통한 설명을 주로 하고 있습니다. 물론 약간의 코드를 통해 설명하고 있지만 실무에 직접적으로 적용하기에는 무리가 있죠. 하지만 이 책은 설명 뿐만 아니라 최적화를 위해 추가적으로 작성된 코드들이 실제로 접목가능한 내용들이 많아 굉장히 많은 도움이 됩니다.


3. 충분한 삽화를 통해 이해도를 높여준다.

프로그램을 공부해 보신 분들은 아실겁니다. 백줄의 글보다 하나의 그림이 엄청난 이해도를 높여준다는 사실을....

이 책은 다양한 그림과 그래프, 사진등을 통해 다소 어려운 내용을 이해하는데 있어서 아주 많은 도움이 되고 있습니다.


4. 설명이 상세하다.

이 책은 다소 어려운 내용이지만 충분한 설명과 다소 쉬운 용어들을 사용하여 이해도를 높였습니다.

번역된 책임에도 불구하고 책을 읽어 나감에 있어서 불편한점이 거의 없을 정도로 잘되어 있습니다.


5. 레퍼런스용 책

개인적으로 이책에 대한 내용이 필요할때마다 찾아보기에 좋을 정도로 잘 정리된 책이라 생각됩니다.

책상 한켠에 꽂아 두고 필요할 때마다 찾아보다도 좋을 만큼 좋은 내용들이 많으며 레퍼런스 용으로 충분하리라 생각됩니다.


개인적으로 아쉬운 점들


1. 초보자를 위한 책은 아니다.

최소한 C나 C++에 대한 기본적인 개념들에 대해 알고 계셔야 하며 프로세스와 쓰레드의 구별이 가능해야 합니다. 멀티스레드 관련 개발 경험이 있으시다면 더더욱 이해하시는데 많은 도움이 되실 겁니다. 책의 전반부에서 쓰레드와 프로세스에 대한 개념들을 설명하고는 있으나 그 내용만으로는 책의 전체적인 내용을 이해하시는데는 무리가 있어 보입니다.


2. 사진과 삽화가 흑백이다.

개인적인 생각입니다. 그냥 칼라였으면 어떨까? 하고 생각해 보았지요. 그러면 가격이 비싸지겠지요?

특별히 적을것이 없어서 적어 보았습니다.


마무리



고성능을 끌어 올리고자 한다면! 멀티프로세스에 대해 많은 고민을 한다면 이 책을 강력히 추천합니다. 병렬 프로그래밍이라는 커다른 틀에서 하나하나의 개별 모듈을 모두 아우르는 아주 일반적인 내용 위주로 잘 정리되어 있답니다. 멀티프로그래밍, 병렬 프로그래밍을 적용하여 성능을 극대화 하는 기법들을 배우고자 하신다면 이 책은 여러분에게 아주 많은 도움을 줄것입니다.