logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

실전 개발을 위한 병렬 프로그래밍

실전 개발을 위한 병렬 프로그래밍

이창재, 김용현, 김성수, 고형호 (지은이)
  |  
웰북(WellBook)
2011-11-21
  |  
28,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

실전 개발을 위한 병렬 프로그래밍

책 정보

· 제목 : 실전 개발을 위한 병렬 프로그래밍 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > C++
· ISBN : 9788901133324
· 쪽수 : 512쪽

책 소개

Parallel Studio, TBB, Cilk Plus, ArBB, OpenMP, PPL 등 병렬 프로그래밍 라이브러리를 한 권의 책에 모두 정리했다. 병렬 프로그래밍의 대중화에 기여하고자 병렬 프로그래밍을 손쉽게 설명했을 뿐만 아니라 실무자의 난제 해결을 위한 다양한 예제를 수록해 실질적인 노하우 공유에 포커스를 맞췄다.

목차

Part Ⅰ. Intel Parallel Studio 활용

1. 급변하는 개발 트렌드의 중심, 병렬 프로그래밍
● 무어의 법칙과 멀티코어
● 개발자가 무슨 죄인이냐?
● 멀티코어 시대의 해법, “병렬 프로그래밍”
● 감사합니다. 병렬 프로그래밍 툴
● 멀티코어 CPU의 구조와 원리
● 병렬 프로그래밍을 배우는 보다 스마트한 방법

2. Parallel Studio 개요 및 설치법
● Intel Parallel Studio 개요
● Intel Parallel Studio 제품 설치
● Visual Studio 2008 vs Visual Studio 2010 통합 환경의 차이점
● Intel Parallel Studio 활용 병렬화 과정 프로젝트

3. Intel 컴파일러를 이용한 병렬화 및 튜닝
● 암달(Amdahl)의 법칙
● 측정 시간과 부하 조정
● 시스템 설정 및 성능 측정
● Intel 컴파일러의 특징
● Intel 컴파일러 스위치 사용법
● 병렬화 대상 확인
● 병렬화 방법
● 베타 제어 방법
● 코어와 스레드의 관계
● Parallel Composer의 병렬화 기능
● 자동 병렬화
● SIMD(single instruction, multiple data) 활용법

4. Parallel Debugger 확장 기능을 이용한 병렬 코드 디버깅
● 스레드 간 데이터 공유 상태 조사
● 프로그램의 재진입 탐지
● OpenMP 디버깅
● 병렬 영역을 순차 실행하기
● SIMD 확인

5. 잠재적 버그 탐색
● 잠재적 버그란?
● Parallel Inspector 소개
● 멀티 스레딩에서 발생할 수 있는 문제
● 디버깅 예제 (원주율 구하기)
● 메모리 관련 문제

6. 성능 튜닝
● 튜닝이란?
● 핫스팟을 이용하는 방법
● 멀티 스레딩 효율성 검증 - Concurrency Level
● 멀티 스레딩 효율성 저하 검증 - 잠금과 대기
Part Ⅱ. TBB를 이용한 병렬화

1. TBB 이해
● TBB란 무엇인가?
● 조정성 (scalability)
● 태스크 (task)
● 태스크 스케줄러 이해
● TBB 기술 구조
● 루프 병렬화의 이해
● 성능 실험 결과

2. TBB 기본 사용법
● TBB 설치
● 개발환경 설정
● TBB 초기화
● 타이밍
● TBB의 알려진 문제점

3. 알고리즘 사용법
● parallel_for
● parallel_reduce
● parallel_while
● parallel_sort
● 중첩 병렬화

4. 동시 컨테이너
● 동시성이 있는 queue 컨테이너
● 동시성이 있는 vector 컨테이너
● 동시성이 있는 map 컨테이너

5. 메모리 할당
● 메모리 할당 작업 시 발생하는 문제
● 메모리 할당자
● new와 delete 대체하기

6. 태스크 스케줄러 활용
● 피보나치 수열 계산을 통한 태스크 스케줄러 활용법 이해
● 태스크 스케줄링 개요

7. TBB를 이용한 Vision 영상 처리 예제
● Vision 영상 처리 프로그램 소개
● TBB 적용 결과
● 사전 준비 설치 (OpenCV 2.2 및 CMake 2.8)
● 예제 프로젝트 생성 및 개발환경 설정
● 영상 처리 로직 이해
● 영상 처리 클래스 추가
● 화면 디자인 및 이벤트 처리 함수 추가
● 병렬화 작업
● 코드 완성 및 테스트

Part Ⅲ. ArBB를 이용한 병렬화

1. 배경
● 병렬 프로세서 분류
● 벡터 처리
● ArBB
● 병렬화 표현
● 데이터 병렬화 프로그래밍 모델 비교

2. 개발 환경
● ArBB 설치
● ArBB 설치 확인
● Visual Studio 디버그 환경 설치
● ArBB 프로젝트 환경 설정
● ArBB 프로젝트 디버그
● 실행 최적화 수준

3. 스칼라 타입
● 스칼라 클래스
● C/C++ 데이터 변환
● 제어 구문

4. 컨테이너 타입
● 컨테이너 타입 유형
● arbb::dense 컨테이너 타입
● arbb::nested 컨테이너 타입
● 반복자
● 데이터 접근하기
● 기본 값 채우기
● arbb::bind 함수

5. 함수 호출 메커니즘
● 사용자 정의 함수
● arbb:capture과 arbb::call 함수 차이점
● 클로저 활용
● 캡처 부작용
● arbb::value 함수 사용 제한
● arbb::map 함수
● 가변/고정 매개변수
● 벡터 프로세싱과 스칼라 프로세싱 비교

6. 시간 측정
● arbb::scoped_timer 클래스

7. 예외 처리
● 런타임 예외

8. 만델브로 집합 예제
● 개요
● 루프 전이 의존성 확인
● 성능 향상 결과

9. 행렬-벡터 곱셈 예제
● 개요
● 행렬-벡터 곱셈 로직
● 성능 향상 결과

Part Ⅳ. Cilk Plus 소개

1. Cilk Plus 이해
● Cilk Plus란?
● 기술 구조
● Cilk Plus를 이용하여 C++ 직렬 프로그램을 병렬화하는 절차
● 성능 향상 사례 소개

2. Cilk Plus 설치 및 샘플 테스트 ● 평가판 다운로드
● 샘플 프로그램 테스트 및 개발 환경 설정

3. 키워드를 통한 태스크 병렬화
● 병렬화 예제를 통한 기초 이해
● cilk_spawn
● cilk_sync
● cilk_for
● cilk_for와 직렬 루프 스포닝 방식 비교
● Grain 크기

4. 배열 표기법을 통한 데이터 병렬화
● 개요
● 영역 연산자

Part Ⅴ. OpenMP를 이용한 병렬화

1. OpenMP 개요

2. OpenMP 기본 사용법
● 필수 요건
● 병렬 영역과 스레드 수
● OpenMP 병렬 영역의 범위
● 데이터 유효범위와 데이터 속성
● 작업분할 (Work Sharing)
● 동기화
● 태스크 제어

3. OpenMP 지시문
● OpenMP 표준 지시문
● 인텔 컴파일러 확장 지시문 (OpenMP 3.0)

4. OpenMP API와 환경 변수
● 환경 변수 (Data Environment)
● 런타임 API
● 잠금함수 (Lock Functions)
● 타임루틴 (timing Routines)
● 인텔 컴파일러가 제공하는 런타임 함수

5. OpenMP 활용
● for루프 구문을 이용하는 것의 주의점
● 병렬 영역의 중첩 처리
● 태스크 제어
● Sections 활용

Part Ⅵ. 병렬 패턴 라이브러리를 이용한 병렬화
1. 동시성 런타임
● 병렬성
● 환경
● 동시성 런타임의 구조
● 스레드
● 특징

2, 병렬 패턴 라이브러리(Parallel Pattern Library) ● 태스크
● 태스크 그룹을 이용한 병렬처리
● 태스크 병렬화
● 루프 병렬화
● 병렬 컨테이너
● 병렬 객체

Part Ⅶ. 부록

1. OpenMP 데이터 일람표

2. IPP 활용법
● 인텔 IPP 프로젝트를 통합
● MSVS 2010에서 사용

3. Quick-Reference Guide to Optimization with Intel compolers
● 일반적인 최적화 옵션
● 병렬화 옵션
● 프로세서 전용 옵션
● 프로시저간 최적화(IPO), 옵션과 프로파일에 근거한 최적화(PGO)
● 부동소수점 연산 최적화
● 세부적인 튜닝 (모든 프로세서)

저자소개

이창재 (지은이)    정보 더보기
Intel Threading Building Blocks의 역자이며, 지난 2년 동안 마소와 인텔에서 주관하는 병렬 프로그래밍 세미나에서 TBB와 Cilk Plus 부문 강사로 활동 중이다. 현장에서 다양한 실무 사례를 발굴하여 청중에게 쉽고 재미있게 전달하는 데 보람을 느낀다.
펼치기
김용현 (지은이)    정보 더보기
윈도우 애플리케이션과 유틸리티에 대해 밑바닥에서 총괄까지 다양한 개발 경험을 가지고 있으며, 유지보수가 쉬운 애플리케이션 아키텍처에 관심이 많다. Microsoft MVP, Devpia 시삽, 그밖에 블로그나 온/오프라인 세미나를 통해서 어렵게 배운 것을 쉽게 알려주는 게 최근 관심사다.
펼치기
김성수 (지은이)    정보 더보기
현재 테라텍에서 인텔 소프트웨어를 통한 프로그래밍 최적화에 대한 컨설팅과 교육을 진행하고 있으며, 다양한 세미나를 통해 C/C++ 개발자들에게 좀 더 효율적으로 최적화 프로그래밍할 수 있는 방법을 전달하고 있다.
펼치기
고형호 (지은이)    정보 더보기
현재 미래로시스템에서 소프트웨어 아키텍트로 근무하면서 정성적 분석 방법론과 반도체 불량 분석 소프트웨어 개발에 참여 중이다. 객체지향 설계에 관한 블로그(hhko.tistory.com)를 운영하고 있으며, 디자인 패턴 관점으로 병렬처리를 구현하는 데 관심이 많다.
펼치기

책속에서




추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책