Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

암달의 법칙

From noriwiki


개요

병렬 컴퓨팅에서 멀티 프로세서를 사용할 때 프로그램의 성능향상은 프로그램의 순차적인 부분에 의해 제한된다. 예를 들면, 프로그램의 95%가 병렬화 할 수 있다면 이론적인 최대 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 20배로 제한된다.

암달의 법칙(Amdahl's law)은 암달의 저주로도 불리며 컴퓨터 시스템의 일부를 개선할 때 전체적으로 얼마만큼의 최대 성능 향상이 있는지 계산하는 데 사용된다.

암달의 법칙에 따르면, 어떤 시스템을 개선하여 전체 작업중 P의 부분에서 S배의 성능이 향상되었을 때 전체 시스템에서 최대 성능 향상은 다음과 같다.

[math]\displaystyle{ \frac{1}{(1-P) + \frac{P}{S}} }[/math]
(개선 후 실행시간 = 개선에 의해 영향을 받는 실행 시간 / 성능 향상 비율 + 영향을 받지 않는 실행 시간)

예를 들어서 어떤 작업의 40%에 해당하는 부분의 속도를 2배로 늘릴 수 있다면, P는 0.4이고 S는 2이고 최대 성능 향상은

[math]\displaystyle{ \frac{1}{(1-0.4) + \frac{0.4}{2}} = 1.25 }[/math]

가 된다.

즉 어떠한 프로그램도 절대 완벽히 병렬화 할 수 없으면, 그 프로그램의 성능 향상은 병렬화 정도에 비하여 상당히 제약되게 된다. 거의 대다수의 프로그램들이 순차적 실행을 필요로 하는 과정이 있음으로 암달의 법칙을 적용하면 코어를 개수를 무작정 늘리는 방식으로는 성능의 향상에 한계가 있음을 알 수 있다.

Contents