Download - 병렬처리와 성능향상
![Page 1: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/1.jpg)
병렬처리와 성능향상
A277032 정승휘
![Page 2: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/2.jpg)
개요
PART Ⅰ. 병렬처리에서 성능 향상
PART Ⅱ. 병렬처리 전략
PART Ⅲ. 스레딩 모델
![Page 3: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/3.jpg)
“The speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction o
f the program.”
병렬처리에서 성능향상을 판단하는 두 가지 관점
암달의법칙(Amdhal’s Law)
Gene Amdhal
“병렬처리를 통한 프로그램의 성능 향상은 프로그램의 직렬 처
리부분에의해 제한된다.”
John Gustafson
구스타프슨의법칙(Gustafson's Law)
“The amount of work that can be done in parallel varies linearly with the number of processors.”“병렬로 처리할 수 있는 작업량은 프로세서의 개수에 따라 선형적
으로증가한다.”
![Page 4: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/4.jpg)
아무리많은 프로세서코어를사용하더라도, 직렬 부분들의실행
속도는절대 깨질 수 없다.
작업량 500 시간 300속도증가 x1.7
암달의 법칙
작업량 500 시간 500속도증가 x1
작업량 500 시간 400속도증가 x1.25
작업량 500 시간 350속도증가 x1.4
![Page 5: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/5.jpg)
구스타프슨의 법칙
프로세서가선형적으로증가할수록처리할수 있는 작업량도선
형적으로증가하므로시간당처리 속도도선형적으로증가한다.
작업량 500 시간 500속도증가 x1
작업량 700 시간 500속도증가 x1.4
작업량 1100 시간 500속도증가 x2.2
작업량 2*N*100+300 시간 500속도증가 O(n)
![Page 6: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/6.jpg)
정리
암달의 법칙과 구스타프슨의 법칙은 같은
문제를 다른 관점에서 본 것.
암달 - 직렬로 수행되는 작업을 최소화
구스타프슨 -문제의 크기가 증가되는 것을
고려
![Page 7: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/7.jpg)
병렬처리 전략
스레드를 어떻게 ‘사용’ 할 것인가?
기존 전략 - 프로그램을 여러 블록으로 나누고 각
블록에 개별 스레드를 할당.
문제점 - 확장성(Scalability)이 없다.
기능 블록의 개수가 고정되어 있기 때문에 프로세
서가 늘어나도 더 많은 데이터를 처리할 수 없다.
![Page 8: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/8.jpg)
병렬처리 전략
Divide & Conquer : 데이터를 더 작은 조각으
로 나누고 각 조각마다 스레드 할당
프로세서가 많아질 수록 더 많은 데이터를
효율적으로 병렬 처리할 수 있다.
![Page 9: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/9.jpg)
Example : Ray-Tracing
![Page 10: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/10.jpg)
Example : Ray-Tracing
3D 렌더링 기술
데이터 양이 많고 계산 집중적인(CPU-Bound) 프로세스이므로 병렬처리에 아주 적
합하다. (I/O-Bound 프로세스의 경우 병렬처
리로 얻을 수 있는 이득이 적을 것)
그려질 이미지를 작은 영역으로 나누고 정
해진 개수의 스레드가 각 영역을 처리한다.
![Page 11: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/11.jpg)
Example : Ray-Tracing
CPU-A : Intel Core Duo P7350 2.0GHz
CPU-B : Intel Core i7 860 2.80GHz
Sample Counts : 32
단 1회만 테스트 함.
![Page 12: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/12.jpg)
Example : Ray-Tracing
스레드개수 시간(sec)
1개 108.84
2개 67.91
4개 62.77
8개 55.33
16개 51.84
32개 51.57
64개 51.24
128개 49.58
256개 48.779
512개 48.65
Intel Core Duo P7350 2.0GHz
![Page 13: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/13.jpg)
Example : Ray-Tracing
스레드개수 시간(sec)
1개 63.05
2개 33.99
4개 19.41
8개 12.40
16개 12.22
32개 12.30
64개 11.89
128개 12.03
256개 12.04
512개 12.22
Intel Core i7 860 2.80GHz
![Page 14: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/14.jpg)
Example : Ray-Tracing
스레드 개수가 많아질 수록 성능향상의 정
도는 줄어든다.
스레드가 너무 많아지면 속도가 조금 빨라
질 수는 있지만 응답성이 떨어진다.
프로세서 개수 대비 적당한 스레드 개수를
정해야한다. (프로그램의 성격, 환경마다 다
를 것)
![Page 15: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/15.jpg)
스레딩 모델
문제를 스레드를 이용해 병렬처리로 해결하
고자 할 때 스레드를 사용하는 방식
Boss / Worker Model
Client / Server Model
Pipeline Model
![Page 16: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/16.jpg)
Boss / Worker Model
Boss 스레드(일반적으로 Main Thread)가 여
러 개의 Worker 스레드에게 작업을 나누어
주는 방식
병렬처리에서 가장 흔한 방식
![Page 17: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/17.jpg)
Example : sortMT
![Page 18: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/18.jpg)
Client / Server Model
동시에 여러 개의 클라이언트들의 요구를
처리하기 위해서 스레드를 연결된 클라이
언트마다 생성한다.
변형된 방법으로 스레드 풀을 사용한 클라
이언트/서버 모델이 있다.
![Page 19: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/19.jpg)
Example : serverNP
![Page 20: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/20.jpg)
Pipeline Model
각 스레드 또는 스레드들의 그룹은 주어진
작업에 대한 특정한 처리를 수행하고, 그것
을 다른 스레드에 넘겨서 나머지 처리가 일
어나게 한다.
공장의 조립라인과 흡사한 방식.
![Page 21: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/21.jpg)
Example : threeStage
![Page 22: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/22.jpg)
참고 자료
뇌를 자극하는 윈도우 시스템 프로그래밍(한빛미디어, 윤성우)
Windows 시스템 프로그래밍 3판(정보문화사, Johnson M. Hart)
인텔 스레딩 빌딩 블록(지앤선, James Reinders)
Operating System Concepts 7th(홍릉과학출판사, Silberschatz)
![Page 23: 병렬처리와 성능향상](https://reader034.vdocuments.site/reader034/viewer/2022052601/559752be1a28abf65b8b4675/html5/thumbnails/23.jpg)
Q&A
BIO HAZARD 5(CAPCOM) – MT Framework Engine