암달의 법칙

암달의 법칙

암달의 법칙을 상기한다.

[출처]


암달의 법칙 : 컴퓨터 시스템의 일부를 개선했을 때 전체적으로 얼마만큼의 최대 성능 향상이 있었는지 계산하는 공식이다. #

전체 시스템 중 P%의 부분에서 S배의 성능 향상이 되었을 때, 전체 시스템의 성능 향상은 다음과 같다.

        1 
-----------------
(1 - P) + (P / S)
                    개선에 의해 영향을 받는 실행 시간
개선 후 실행시간 =  ----------------------------------
                성능 향상 비율 + 영향을 받지 않는 실행 시간

‘병목 현상’을 설명하기 위한 공식으로도 사용될 수 있다. #

(아래 예시 처럼)전체 40% 부분이 2배 향상되었을 때, 전체 성능은 1.25배 향상된다. 40% 부분이 2배가 아닌 무한배 향상되더라도 1.66 배 이상 향상될 수 없다.

  • 즉, 일부분이 무한히 향상된다고 해도 전체 성능은 x배 이상 향상될 수 없다.
    • 쉬운 예시로, 일부분(CPU, 혹은 GPU, 혹은 일부 코드)만 성능 향상이 많이 되어도 한계가 있다.
  • 즉, 전체 성능 개선을 위해서, 비중(P%)이 큰 작업부터 개선하면 좋다.

예시 #

예를 들어, 전체 시스템의 40%에 부분에 대해서 2배의 성능 개선이 있었다면 다음과 같이 계산할 수 있다.

          1
---------------------  =  1.25
(1 - 0.4) + (0.4 / 2)

병렬 컴퓨팅(Parallel) 관련 #

병렬 컴퓨팅(코어)의 수가 아무리 많아져도, 일부분(sequential 한 부분)에 의해 성능 향상에 한계가 있다.

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