HPC 시스템의 성능 향상도(Speedup) 측정 지표
성능향상도(speed-up) S(n)
순차 프로그램에 대한 병렬 프로그램의 성능향상 정도를 성능향상도라고 하며, 이때 실행시간(elapsed time)은 wall clock time을 기준으로 한다. 실행시간이 24시간 소요되는 순차 프로그램에 대해서 병렬화를 수행하여 4개의 프로세서를 사용하여 8시간만에 그 결과를 얻을 경우 성능향상도는
Amdahl’s Law
클러스터 컴퓨팅은 CPU 1개의 성능 한계를 해결하기 위해 출현한 아키텍처 중 최초로 탄생한 것이라고 할 만 하다. ‘클러스터를 찾아서(In Search of Clusters)’라는 책을 쓴 그렉 피스터(Greg Pfister)에 의하면, 클러스터라는 개념을 만들어낸 것은, 1개의 CPU 성능으로는 만족할 수 없었던 불특정 고객들이며, 그 개념은 1960년부터 있던 것이라고 한다. 최초로 클러스터링의 이론적 기초를 닦은 사람은 IBM의 암달(Gene Amdahl) 박사였다. 암달 박사가 1967년에 발표한 암달의 법칙(Amdahl’s law)에서 병렬 컴퓨팅에 대한 기초가 마련되면서, SMP와 함께 클러스터링의 이론적 기반이 만들어졌다.
암달의 법칙이란, 병렬처리 프로그램에서 차례로 수행되어야 하는 비교적 적은 수의 명령문들이, 프로세서의 수를 추가하더라도 그 프로그램의 실행을 더 빠르게 할 수 없도록 속도향상을 제한하는 요소를 갖고 있다는 것이다.
- 잠재적인 프로그램 speedup을 기술하는 Amdahl의 법칙은 병렬화 시킬 수 있는 코드의 비율(P) 로 정의 된다.
- 만일 아무런 코드도 병렬화가 안되어 있다면 , f=0 이고 speedup=1 (no speedup) 이다. 만일 모든 코드가 병렬화되었다면 , f=1 이고 speedup 은 무한 대이다. (이론상)
- 만일 코드의 50%가 병렬화되었다면 , 최고 speedup=2 이고 이것은 serial 코드보다 2배의 속도 향상을 가져옴을 의미한다.
- 즉, 프로세스병렬화 한계가 반드시 존재한다는 것으로, 병렬처리가 불가능한 순차적인 부분이 있어 프로세스를 아무리 병렬화한다하더라도 더 이상 성능이 향상되지 않는 한계가 존재한다는 법칙이다.
이론 성능향상도
암달의 법칙에 의해 병렬프로그램의 성능향상도는 순차 프로그램에서 병렬화 가능한 부분의 비율에 의해서 결정된다고 했다. 그럼 여기서 시리얼 프로그램이 코드가 100이라고 할때 20이 병렬화가 불가능한 부분이고 나머지 80에 대해서 병렬화가 가능하다고 할때, 4개의 프로세서를 사용하여 병렬화할 경우 이론 성능향상도는
f : 병렬화가 불가능한 부분 = 0.2
n : 프로세서 =4
실제 성능향상도
이론 성능향상도는 통신부하, 부하분산 불균형에 대한 고려가 없지만, 실제 병렬프로그램에서는 이러한 사항들이 성능향상에 영향을 미친다.
병렬 프로그램의 효율(efficiency) E(n)
프로세서 사용 개수에 따른 병렬 프고르매의 성능 효율로 4개의 프로세서로 3배의 성능향상이 있을 경우 0.75또는 75%의 병렬프로그래밍의 효율이 있다고 한다.
병렬 프로그램의 성능 향상
- 순차프로그램에서 병렬화 가능한 부분을 증가시킨다.
- 병렬 프로세스들의 부하분산을 고르게 한다.
- 통신에 소요되는 시간을 최소화 한다.
발췌 : http://hongiiv.tistroy.com/160
1 Response
… [Trackback]
[…] Find More on on that Topic: nblog.syszone.co.kr/archives/3648 […]