출판사 제공 책소개 일부
인텔 패러럴 스튜디오를 이용한 최신 병렬 프로그래밍 기술의 실전 노하우를 담은 C++ 개발자 필독서
Parallel Studio, TBB, Cilk Plus, ArBB, OpenMP, PPL 등 병렬 프로그래밍 라이브러리를 한 권의 책에 모두 정리했다. 병렬 프로그래밍의 대중화에 기여하고자 병렬 프로그래밍을 손쉽게 설명했을 뿐만 아니라 실무자의 난제 해결을 위한 다양한 예제를 수록해 실질적인 노하우 공유에 포커스를 맞췄다. 날이 갈수록 할 일이 늘어만 가는 개발자들에게 이 책은 '가뭄 속 단비'가 될 수 있을 것이다.
스마트한 기획과 번뜩이는 아이디어, 급변하는 트렌드 속에서 대세를 판단할 수 있는 날카로운 시각과 끊임없는 신기술의 습득. 이 모든 게 요즘 개발자에게 요구되는 덕목이다. 이렇듯 할 일이 많아진 개발자들에게 병렬 프로그래밍은 ‘구세주’다. 분야를 가리지 않고 병렬 프로그래밍의 중요성은 높아지지만, 프로젝트에 어떤 병렬 프로그래밍 툴과 기법들을 적용할지가 고민거리다. 이 책은 인텔 패러럴스튜디오의 활용법과 TBB, ArBB, Cilk Plus(실크 플러스)는 물론 다양한 기기에 적용할 수 있는 병렬 프로그래밍 ...
출판사 제공 책소개 전체
인텔 패러럴 스튜디오를 이용한 최신 병렬 프로그래밍 기술의 실전 노하우를 담은 C++ 개발자 필독서
Parallel Studio, TBB, Cilk Plus, ArBB, OpenMP, PPL 등 병렬 프로그래밍 라이브러리를 한 권의 책에 모두 정리했다. 병렬 프로그래밍의 대중화에 기여하고자 병렬 프로그래밍을 손쉽게 설명했을 뿐만 아니라 실무자의 난제 해결을 위한 다양한 예제를 수록해 실질적인 노하우 공유에 포커스를 맞췄다. 날이 갈수록 할 일이 늘어만 가는 개발자들에게 이 책은 '가뭄 속 단비'가 될 수 있을 것이다.
스마트한 기획과 번뜩이는 아이디어, 급변하는 트렌드 속에서 대세를 판단할 수 있는 날카로운 시각과 끊임없는 신기술의 습득. 이 모든 게 요즘 개발자에게 요구되는 덕목이다. 이렇듯 할 일이 많아진 개발자들에게 병렬 프로그래밍은 ‘구세주’다. 분야를 가리지 않고 병렬 프로그래밍의 중요성은 높아지지만, 프로젝트에 어떤 병렬 프로그래밍 툴과 기법들을 적용할지가 고민거리다. 이 책은 인텔 패러럴스튜디오의 활용법과 TBB, ArBB, Cilk Plus(실크 플러스)는 물론 다양한 기기에 적용할 수 있는 병렬 프로그래밍 API인 OpenMP와 PPL(병렬 패턴 라이브러리)를 이용한 병렬화에 이르기까지 병렬화에 필요한 다양한 기법들을 제시한다. 중요성에 비해 좀처럼 정보가 부족했던 병렬 프로그래밍에 대한 모든 정보가 이 책 한 권에 담겨있으며, 이론에서 실전 개발에 이르기까지 병렬 프로그래밍의 모든 비법을 이 책 한 권이면 완전 정복할 수 있다.
각 장의 내용을 살펴보면 다음과 같다.
Part 01 | Intel Parallel Studio 활용
Intel Parallel Studio 2011을 이용한 보다 손쉬운 병렬 프로그래밍 개발에 대한 내용들을 담고 있다. Parallel Studio는 Windows OS 환경에서 Microsoft Visual Studio와 통합된 환경에서 개발할 수 있어 기존에 Visual Studio를 사용하는 개발자라면 환경의 변화 없이 병렬 프로그램을 활용할 수 있을 것이다. Intel Parallel Studio를 구성하는 Intel Parallel Composer, Intel Parallel Inspector, Intel Parallel Amplifier를 이용한 병렬화 방법론과 제품의 활용법에 대해 설명하고 있어 이번 파트를 통해 병렬 프로그래밍의 기초를 닦을 수 있다.
Part 02 | TBB를 이용한 병렬화
멀티코어 프로세서의 대중화로 개인용 PC에서도 병렬 프로그래밍을 사용할 수 있게 됐다. 물론 코어 개수가 늘어난다고 기존 프로그램의 성능이 저절로 증가하는 것은 아니기 때문에 멀티코어에서 동작할 수 있는 방식으로 프로그램을 작성해야 한다. 여기서 발생하는 문제가 ‘병렬화 기술을 실무에 쉽게 도입할 수 있냐?’는 것이다. 병렬 프로그래밍은 스레드를 직접 생성/관리/동기화해야 하는 복잡함이 난관이다. 2006년 인텔이 제시한 스레딩 빌딩 블록(Threading Building Blocks, 이하 TBB)이 이에 대한 해결책이다. 이번 파트에서는 TBB는 무엇이며, 실무에서 실제로 어떤 도움을 줄 수 있는지를 확인해본다.
Part 03 | ArBB를 이용한 병렬화
CUDA(Compute Unified Device Architecture)와 OpenCL(Open Computing Language) 등 벡터 처리 기술이 개발자들 사이에 확산되고 있다. 그러나 기존 CUDA와 OpenCL 라이브러리는 추상화 수준이 낮기 때문에 개발자가 데이터 병렬화를 위해 로직을 개발해야 하며, 병렬화를 위한 시스템 요소까지 모두 관리해야 한다는 한계가 있다. 뿐만 아니라 “결정적(deterministic) 프로그래밍”을 지원하지 않아 병렬화 과정 중 발생할 수 있는 데이터 레이스(data race)와 데드락(deadlock)과 같은 문제를 직접 해결해야 한다. 이런 문제점을 극복하고자 최근 인텔이 출시한 ArBB를 통한 병렬화 과정을 살펴본다.
Part 04 | Cilk Plus 소개
TBB 및 ArBB와 함께 인텔의 Parallel Building Blocks 삼총사 중 하나인 Cilk Plus가 무엇인지 이해하는데 목적이 있다. 간단한 방법으로 루프나 함수 호출을 병렬화할 수 있는 C/C++용 언어 확장팩인 Cilk Plus의 설치와 사용법을 통해 실무에 적용 가능할지 기술적 판단을 내릴 수 있을 것이다.
Part 05 | OpenMP를 이용한 병렬화
이번 장은 병렬화에서 다른 라이브러리보다 쉽게 배울 수 있는 OpenMP에 대한 내용이다. OpenMP는 Fortran, C/C++ 유저뿐 아니라 Windows, Linux, Unix 환경을 모두 지원한다. 다양한 구조에 적용해 어려운 점이 있지만 다른 병렬 라이브러리보다 쉽게 적용할 수 있다. 이번 파트에서는 OpenMP의 기본적인 개요와 함께 기본 사용법은 물론 OpenMP의 지시문과 OpenMP가 제공하는 작업분할, 동기화, 데이터 환경에 대한 지시문을 알아본다. 그 후 OpenMP API와 환경변수를 이용한 좀 더 유연한 병렬화와 OpenMP를 좀 더 최적화해 사용하는 방법과 주의사항에 대해서 알아본다.
Part 06 | 병렬 패턴 라이브러리를 이용한 병렬화
이번 파트에서는 동시성 런타임의 구성요소 중 애플리케이션과의 인터페이스에 해당하는 콤포넌트 중 병렬 패턴 라이브러리(PPL)를 통해 병렬화 프로그래밍을 구현하는 방법을 알아본다.
Part 07 | 부록
각 파트는 이론적인 설명, 설치 과정 및 방법은 물론 예제를 통해 실전개발에 도움을 줄 수 있게 구성돼 있다. 다양한 그림, 표, 리스트는 독자들의 이해를 돕기에 충분하며, 파트 01에서 07까지 완성한다면 병렬 프로그래밍이 가능한 개발자로 거듭날 수 있을 것이다. 또한 인텔 패러럴스튜디오, TBB, ArBB, Cilk Plus, OpenMP, PPL에 이르기까지 다양한 라이브러리를 이론, 실무에 걸쳐 설명하고 있다. 이 책이 실전개발을 위한 길라잡이가 돼 줄 것이다.
정보 제공 : 알라딘 
서평 (0 건)
*주제와 무관한 내용의 서평은 삭제될 수 있습니다.
서평추가