Cilk Plus(실크 플러스): C/C++ 확장 차세대 병렬 프로그래밍
C C++ 확장 차세대 병렬 프로그래밍
C, C++ 확장 언어인 Cilk Plus를 다루는 『Cilk Plus』. 이 책은 기본적인 프로그램 문법만 숙지하고 있다면, Cilk Plus를 쉽게 배우고 실무에 활용할 수 있도록 구성한 것이다. 직접 개발한 프로그램이 멀티 코어 환경에서 좋은 성능을 내는 방법을 마련해준다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
이 책은 C, C++ 확장 언어인 Cilk Plus를 다루고 있습니다. Cilk Plus는 C, C++ 차세대 병렬 프로그래밍 언어로서 사용이 매우 쉽고, 성능 또한 뛰어납니다.
기본적인 프로그램 문법만 알고 있다면, 병렬 프로그래밍이 낯선 프로그래머라도 이 책을 통해 Cilk Plus를 쉽게 배우고 실무에 활용하여 자신이 개발한 프로그램이 멀티 코어 환경에서 최고의 성능을 내도록 할 수 있습니다
■이 책의 구성
이 책은 다루는 내용에 따라 네 부분으로 나누어집니다.
Part 1 Cilk Plus 병렬 프로그래밍 개요
1장에서는 CPU의 변화를 통해 병렬 프로그램을 해야만 하는 이유를 설명하고 있습니다. 2장에서는 Cilk Plus의 설치와 간단한 사용법을 설명하고 있으며, 3장에서는 Cilk Plus가 가진 특성 및 동작 원리를 설명합니다.
Part 2 Cilk Plus의 사용
4장에서 9장까지는 Cilk Plus의 키워드와 리듀서, 배열 표기법을 설명합니다. 4장에서는 spawn의 개념과 cilk_spawn 키워드의 사용법을 설명하고, 5장에서는 for 문을 병렬 처리로 바꾸는 cilk_for 키워드를 설명합니다. 6장에서는 동기화 객체인 cilk_sync를 다루고, 7장은 여러 개의 스레드에서 공유되는 변수를 제어하는 리듀서를 설명합니다. 8장에서는 백터화 기법인 배열 표기법을 다루고, 9장에서는 Cilk Plus의 상태를 확인할 수 있는 런타임 함수를 설명합니다.
Part 3 Cilk Plus의 활용
10장과 11장에서는 Cilk Plus를 활용한 프로그램의 최적화와 활용 예제에 대해서 설명합니다. cilk_spawn과 cilk_for를 이용하여 프로그램을 최적화하는 방법과 간단한 이미지 프로세싱을 이용하여 Cilk Plus의 성능을 알아봅니다.
Part 4 병렬 프로그램의 디버그
12장에서는 병렬 프로그램에서 다양하게 나타날 수 있는 버그의 유형과 해결 방법에 대해서 설명합니다. 13장에서는 디버깅 도구를 이용하여 좀 더 쉽게 디버그하는 방법과 성능 향상을 위해 튜닝하는 방법을 설명합니다.
목차
목차
01. 병렬지향으로
02. 병렬 처리와 병행 처리
03. 공짜 점심의 시대와 싱글 코어 시대의 쇠퇴
04. 병렬 처리 구분과 병렬 프로그램 시대
05. 병렬 프로그램의 어려운 점
06. 암달의 법칙
07. 인텔 PBB 병렬 프로그램
08. 인텔 Cilk Plus의 역사와 배경
09. 너무나 쉬운 Cilk Plus
2장 Cilk Plus 준비하기
01. Cilk Plus 프로그래밍을 시작하기 전에
02. 인텔 Parallel Studio 평가판 설치하기
03. Visual Studio 2010에 설정하기
04. Cilk Plus 버전 확인
05. Cilk Plus의 간편성
3장 Cilk Plus 개요 및 동작 원리
01. Cilk Plus의 4개 구조
02. Cilk Plus의 특징
03. Cilk Plus의 병렬 모형
04. Cilk Plus의 콘셉트
05. Cilk Plus 실행 모델
06. 워크-스틸링
07. 순차적 프로그램, OpenMP, Cilk Plus의 성능 비교
08. 다른 병렬 언어와 관계
09. 순차적 프로그램의 Cilk Plus로의 병렬화 절차
4장 cilk_spawn 키워드
01. cilk_spawn 키워드의 의미
02. cilk_spawn 키워드와 스레드 풀링
03. cilk_spawn 키워드 사용법
04. cilk_spawn 키워드의 사용 및 주의사항
5장 cilk_for 키워드
01. cilk_for 키워드 사용법
02. cilk_for 키워드의 본체 구현
03. for 문에서 cilk_for와 cilk_spawn의 의미
04. for 문에서 cilk_spawn을 사용할 때 문제점
05. cilk_for의 작업 분할 크기
06. cilk_for의 조건과 제한
6장 cilk_sync 키워드
01. cilk_sync 키워드 사용법
02. 암묵적 cilk_sync
03. 예외 처리
7장 리듀서
01. 리듀서의 의미
02. Cilk Plus의 리듀서 특성
03. 리듀서 사용 방법
04. C++ 리듀서 라이브러리
05. C 리듀서 라이브러리
06. 리듀서의 동작 원리
07. 리듀서의 사용 예
08. 사용자 정의 리듀서
8장 배열 표기법
01. 배열 표기법이란
02. 배열 표기법 설정 옵션
03. 배열 표기법의 문법
04 배열 표기법의 배열 선언
05. 배열 표기법의 사용
06. 요소 함수
07. SIMD 프라그마
9장 런타임 함수
01. 런타임 함수
02. 그 외 런타임 함수
03. 환경 변수 설정
04. Cilk Plus 언어의 특성 요약
10장 Cilk Plus 프로그램 최적화
01. 순차 프로그램의 최적화
02. cilk_for 키워드의 위치
03 cilk_spawn을 이용한 재귀 호출
04. cilk_spawn 대신 cilk_for의 사용
05. 동적 메모리 할당
06. 그 외 최적화 방안
11장 활용 예제
01. 사용자 정의 리듀서
02. 하노이의 탑
03. 영상 처리
04. Cilk Plus를 활용한 영상 처리
12장 디버그
01. 데이터 경합
02. 데이터 경합의 해결
03. 록의 문제
04. 폴스 셰어링
05. Cilk Plus 병렬 프로그램 디버깅
13장 디버깅 툴 활용
01. 인텔 Parallel Studio 소개
02. 에러의 탐지: Inspector XE 2011
03. 성능 분석 : 인텔 Vtune Amplifier XE 2011
04. 인텔 Parallel Debugger의 사용
INDEX
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

