어제 영풍문고에 들려서 하나 지르고 왔다. 역시 교보보단 영풍이 깔끔하게 책정리가 잘 되있는 것 같다.
본 책과 "C++ Network Programming" 중 어느 것을 살까 고민을 많이 했지만, 깔끔한 표지에 끌려 구입하게 되었다.

지금까지 간단히 서문과 1, 2장까지만 봤는데, 설명이 상당히 자세히 나와있다. 병렬처리를 이해시키기 위해 준비시키는 것 같은데, 대충 아는 사람 입장에선 조금 지루한 감이 있다. 그리고 타 책과 마찮가지로 자신의 기술[TBB]상의 우수성을 상당히 강조하는 느낌이 듣다.



간단히 목차 소개하고 넘어가겠다.

서문 

  1. 왜 스레딩 빌딩 블록인가? 
    개요
    어떤 이점이 있는가?
  2. 병렬적 사고방식 
    병렬적 사고 요소
    분해
    조정성 및 속도 증가
    스레드란 무엇인가?
    상호 배제와 잠금
    정확성
    추상화
    패턴
    직관력
  3. 기본 알고리즘 
    라이브러리 초기화 및 종료
    루프 병렬화
    재귀적 범위 명세
    루프에 대한 요약
  4. 고급 알고리즘 
    스트림에 대한 병렬 알고리즘
  5. 컨테이너 
    concurrent_queue
    concurrent_vector
    concurrent_hash_map
  6. 조정성이 있는 메모리 할당 
    한계 사항
    메모리 할당 작업 시 발생하는 문제
    메모리 할당자
    malloc, new 및 delete 대체하기
  7. 상호 배제 
    상호 배제를 사용할 때
    뮤텍스
    뮤텍스
    원자적 연산
  8. 타이밍 
    
  9. 태스크 스케줄러 
    태스크 기반의 프로그래밍이 적합하지 않을 때
    원초적 스레드보다 나은 방식
    라이브러리를 초기화하는 것은 여러분의 할 일
    피보나치 숫자에 대한 예제
    태스크 스케줄링 개요
    태스크 스케줄링 동작 원리
    권장되는 태스크 반복 패턴
    스케줄러를 가장 잘 사용하는 방법
    태스크 스케줄러 인터페이스
    태스크 스케줄러 요약
  10. 성공을 위한 핵심 사항 
    성공을 위한 핵심 단계
    느슨한 순차적 실행(Relaxed Sequential Execution)
    메서드와 라이브러리에 대한 안전한 동시성
    디버그 대. 릴리즈
    효율성을 위하여
    디버깅 기능 사용하기
    다른 스레딩 패키지와 혼용
    명명 규칙
  11. 예제 
    아하! 요인
    몇 가지 다른 핵심 사항들
    parallel_for 예제들
    인생게임
    parallel_reduce 예제들
    CountStrings: concurrent_hash_map 사용하기
    퀵 정렬: 태스크 스틸링 시각화하기
    더 나은 행렬 곱셈 (Strassen)
    고급 태스크 프로그래밍
    패킷 처리 파이프라인
    메모리 할당
    게임 스레딩 예제
    물리적 상호작용 및 업데이트 코드
    ODE(Open Dynamics Engine)
  12. 역사와 관련 프로젝트들 
    라이브러리
    언어
    프라그마
    제네릭 프로그래밍
    캐시
    시간 분할에 대한 비용
    람다 함수에 대한 간략한 소개
    참고 문헌

앞으로 책에 나온 예제 위주로 간단히 포스팅하겠다.

Cf) "조정성" 이란 단어를 사용하는데 "Scalability" 을 나타낸다. ( 한글로 번역하니 어색하다…. )

'Report' 카테고리의 다른 글

제너릭 프로그래밍이란?  (0) 2010.02.02