2. 개요 PART Ⅰ. 병렬처리에서 성능 향상 PART Ⅱ. 병렬처리 전략 PART Ⅲ. 스레딩 모델
3. 병렬처리에서 성능향상을 판단하는 두 가지 관점 암달의 법칙(Amdhal’s Law) “The speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the program.” “병렬처리를 통한 프로그램의 성능 향상은 프로그램의 직렬 처리부분에 의해 제한된다.” Gene Amdhal 구스타프슨의 법칙(Gustafson's Law) “The amount of work that can be done in parallel varies linearly with the number of processors.” “병렬로 처리할 수 있는 작업량은 프로세서의 개수에 따라 선형적으로 증가한다.” John Gustafson
4. 아무리 많은 프로세서 코어를 사용하더라도, 직렬 부분들의 실행 속도는 절대 깨질 수 없다. 작업량 500 시간 300 속도증가 x1.7 암달의 법칙 작업량 500 시간 350 속도증가 x1.4 작업량 500 시간 500 속도증가 x1 작업량 500 시간 400 속도증가 x1.25
5. 구스타프슨의 법칙 프로세서가 선형적으로 증가할수록 처리할 수 있는 작업량도 선형적으로 증가하므로 시간당 처리 속도도 선형적으로 증가한다. 작업량 500 시간 500 속도증가 x1 작업량 700 시간 500 속도증가 x1.4 작업량 1100 시간 500 속도증가 x2.2 작업량 2*N*100+300 시간 500 속도증가 O(n)
6. 정리 암달의 법칙과 구스타프슨의 법칙은 같은 문제를 다른 관점에서 본 것. 암달- 직렬로 수행되는 작업을 최소화 구스타프슨-문제의 크기가 증가되는 것을 고려
7. 병렬처리 전략 스레드를 어떻게 ‘사용’ 할 것인가? 기존 전략 - 프로그램을 여러 블록으로 나누고 각 블록에 개별 스레드를 할당. 문제점 - 확장성(Scalability)이 없다. 기능 블록의 개수가 고정되어 있기 때문에 프로세서가 늘어나도 더 많은 데이터를 처리할 수 없다.
8. 병렬처리 전략 Divide & Conquer : 데이터를 더 작은 조각으로 나누고 각 조각마다 스레드 할당 프로세서가 많아질 수록 더 많은 데이터를 효율적으로 병렬 처리할 수 있다.
10. Example : Ray-Tracing 3D 렌더링 기술 데이터 양이 많고 계산 집중적인(CPU-Bound) 프로세스이므로 병렬처리에 아주 적합하다. (I/O-Bound 프로세스의 경우 병렬처리로 얻을 수 있는 이득이 적을 것) 그려질 이미지를 작은 영역으로 나누고 정해진 개수의 스레드가 각 영역을 처리한다.
11. Example : Ray-Tracing CPU-A : Intel Core Duo P7350 2.0GHz CPU-B : Intel Core i7 860 2.80GHz Sample Counts : 32 단 1회만 테스트 함.
22. 참고 자료 뇌를 자극하는 윈도우 시스템 프로그래밍(한빛미디어, 윤성우) Windows 시스템 프로그래밍 3판(정보문화사, Johnson M. Hart) 인텔 스레딩 빌딩 블록(지앤선, James Reinders) Operating System Concepts 7th(홍릉과학출판사, Silberschatz)