병렬처리와 성능향상

23
병렬처리와 성능향상 A277032 정승휘

Upload: shaderx

Post on 04-Jul-2015

1.680 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 병렬처리와 성능향상

병렬처리와 성능향상

A277032 정승휘

Page 2: 병렬처리와 성능향상

개요

PART Ⅰ. 병렬처리에서 성능 향상

PART Ⅱ. 병렬처리 전략

PART Ⅲ. 스레딩 모델

Page 3: 병렬처리와 성능향상

“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: 병렬처리와 성능향상

아무리많은 프로세서코어를사용하더라도, 직렬 부분들의실행

속도는절대 깨질 수 없다.

작업량 500 시간 300속도증가 x1.7

암달의 법칙

작업량 500 시간 500속도증가 x1

작업량 500 시간 400속도증가 x1.25

작업량 500 시간 350속도증가 x1.4

Page 5: 병렬처리와 성능향상

구스타프슨의 법칙

프로세서가선형적으로증가할수록처리할수 있는 작업량도선

형적으로증가하므로시간당처리 속도도선형적으로증가한다.

작업량 500 시간 500속도증가 x1

작업량 700 시간 500속도증가 x1.4

작업량 1100 시간 500속도증가 x2.2

작업량 2*N*100+300 시간 500속도증가 O(n)

Page 6: 병렬처리와 성능향상

정리

암달의 법칙과 구스타프슨의 법칙은 같은

문제를 다른 관점에서 본 것.

암달 - 직렬로 수행되는 작업을 최소화

구스타프슨 -문제의 크기가 증가되는 것을

고려

Page 7: 병렬처리와 성능향상

병렬처리 전략

스레드를 어떻게 ‘사용’ 할 것인가?

기존 전략 - 프로그램을 여러 블록으로 나누고 각

블록에 개별 스레드를 할당.

문제점 - 확장성(Scalability)이 없다.

기능 블록의 개수가 고정되어 있기 때문에 프로세

서가 늘어나도 더 많은 데이터를 처리할 수 없다.

Page 8: 병렬처리와 성능향상

병렬처리 전략

Divide & Conquer : 데이터를 더 작은 조각으

로 나누고 각 조각마다 스레드 할당

프로세서가 많아질 수록 더 많은 데이터를

효율적으로 병렬 처리할 수 있다.

Page 9: 병렬처리와 성능향상

Example : Ray-Tracing

Page 10: 병렬처리와 성능향상

Example : Ray-Tracing

3D 렌더링 기술

데이터 양이 많고 계산 집중적인(CPU-Bound) 프로세스이므로 병렬처리에 아주 적

합하다. (I/O-Bound 프로세스의 경우 병렬처

리로 얻을 수 있는 이득이 적을 것)

그려질 이미지를 작은 영역으로 나누고 정

해진 개수의 스레드가 각 영역을 처리한다.

Page 11: 병렬처리와 성능향상

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: 병렬처리와 성능향상

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: 병렬처리와 성능향상

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: 병렬처리와 성능향상

Example : Ray-Tracing

스레드 개수가 많아질 수록 성능향상의 정

도는 줄어든다.

스레드가 너무 많아지면 속도가 조금 빨라

질 수는 있지만 응답성이 떨어진다.

프로세서 개수 대비 적당한 스레드 개수를

정해야한다. (프로그램의 성격, 환경마다 다

를 것)

Page 15: 병렬처리와 성능향상

스레딩 모델

문제를 스레드를 이용해 병렬처리로 해결하

고자 할 때 스레드를 사용하는 방식

Boss / Worker Model

Client / Server Model

Pipeline Model

Page 16: 병렬처리와 성능향상

Boss / Worker Model

Boss 스레드(일반적으로 Main Thread)가 여

러 개의 Worker 스레드에게 작업을 나누어

주는 방식

병렬처리에서 가장 흔한 방식

Page 17: 병렬처리와 성능향상

Example : sortMT

Page 18: 병렬처리와 성능향상

Client / Server Model

동시에 여러 개의 클라이언트들의 요구를

처리하기 위해서 스레드를 연결된 클라이

언트마다 생성한다.

변형된 방법으로 스레드 풀을 사용한 클라

이언트/서버 모델이 있다.

Page 19: 병렬처리와 성능향상

Example : serverNP

Page 20: 병렬처리와 성능향상

Pipeline Model

각 스레드 또는 스레드들의 그룹은 주어진

작업에 대한 특정한 처리를 수행하고, 그것

을 다른 스레드에 넘겨서 나머지 처리가 일

어나게 한다.

공장의 조립라인과 흡사한 방식.

Page 21: 병렬처리와 성능향상

Example : threeStage

Page 22: 병렬처리와 성능향상

참고 자료

뇌를 자극하는 윈도우 시스템 프로그래밍(한빛미디어, 윤성우)

Windows 시스템 프로그래밍 3판(정보문화사, Johnson M. Hart)

인텔 스레딩 빌딩 블록(지앤선, James Reinders)

Operating System Concepts 7th(홍릉과학출판사, Silberschatz)

Page 23: 병렬처리와 성능향상

Q&A

BIO HAZARD 5(CAPCOM) – MT Framework Engine