병렬처리와 성능향상

Post on 04-Jul-2015

1.680 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

병렬처리와 성능향상

A277032 정승휘

개요

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

PART Ⅱ. 병렬처리 전략

PART Ⅲ. 스레딩 모델

“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.”“병렬로 처리할 수 있는 작업량은 프로세서의 개수에 따라 선형적

으로증가한다.”

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

속도는절대 깨질 수 없다.

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

암달의 법칙

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

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

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

구스타프슨의 법칙

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

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

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

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

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

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

정리

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

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

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

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

고려

병렬처리 전략

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

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

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

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

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

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

병렬처리 전략

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

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

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

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

Example : Ray-Tracing

Example : Ray-Tracing

3D 렌더링 기술

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

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

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

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

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

Example : Ray-Tracing

CPU-A : Intel Core Duo P7350 2.0GHz

CPU-B : Intel Core i7 860 2.80GHz

Sample Counts : 32

단 1회만 테스트 함.

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

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

Example : Ray-Tracing

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

도는 줄어든다.

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

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

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

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

를 것)

스레딩 모델

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

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

Boss / Worker Model

Client / Server Model

Pipeline Model

Boss / Worker Model

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

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

주는 방식

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

Example : sortMT

Client / Server Model

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

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

언트마다 생성한다.

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

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

Example : serverNP

Pipeline Model

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

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

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

어나게 한다.

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

Example : threeStage

참고 자료

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

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

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

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

Q&A

BIO HAZARD 5(CAPCOM) – MT Framework Engine

top related