Who is he?

 

암달의 법칙(Amdahl's law)은 미국의 컴퓨터 공학자이자 기업가였던 진 암달(Gene Amdahl)이 만든 법칙으로 암달의 저주(Amdahl's curse), 암달의 인수(Amdahl's argument)라고도 불린다.


진 암달(Gene Amdahl, 1922년 11월 16일 ~ 2015년 11월 10일)은 위스콘신 대학교 매디슨에서 이론물리학 석박사를 취득했고, 52년에 IBM으로 입사해 704 메인프레임, 시스템 360 메인프레임 등의 개발을 총괄하기도 했다. 암달의 법칙은 1965년 옮긴 어드밴스드컴퓨팅시스템랩에서 만든 것으로 컴퓨터 성능 최적화의 한계점을 측정하기 위해 만든 법칙이다.

Gene Amdahl

 


Amdahl's Law?

 

컴퓨터 좀 알아본 사람이면 듀얼코어, 쿼드코어 같은 말을 들어본적이 있을것이다.

이러한 코어는 결국 CPU를 의미하는데, 인텔의 공동설립자인 고든 무어는 1960년대 당시 18개월에서 24개월마다 CPU속도는 2배향상될 것이라고 말했다. 이것이 유명한 무어의 법칙.

 

무어의 법칙은 끝인가?

이 법칙은 나름 2000년대 초반까지 맞아들어갔고, 파란색 그래프, Transistors per chip은 향상되나 speed는 더이상 증가하지 않는다고도 볼수있는 시점에 왔다. 따라서 이때부터 CPU 의 개수를 늘리는방법을 고안해냈다.

하지만 컴퓨터의 두뇌라고 할수있는 CPU가 많아진다고 해서 단순히 속도가 빨라질수 있을까?

무어의 법칙에 따르면 아니라는 것이다. 

물론 아닐꺼라고 짐작은 가능하다. 하지만 왜일까?

 

 

Amdahl's law

프로그램에는 여러개의 코어로 병렬처리할수 있는 부분이 있고, 없는 부분이 있을것이다.

당연스럽게도, 코어개수를 늘리면 병렬처리 가능한 부분은 개선이 되지만 그것은 일부일 뿐이고 나머지 부분에는 개선이 없다는 것이다. 

위그림에서보면 보라색부분은 3개의 코어로 병렬처리된다고 가정하면, 주황색부분은 병럴처리 불가능하기 때문에

단순히 3배의 성능향상이라고는 볼 수 없다는 것이다.

 

 

Amdahl's law

수식을 딱히 좋아하진 않지만, 간단히 살펴보면 1-P는 병렬처리가 불가능한 부분이고, P는 병럴처리가 가능한 부분이라고 하고 S를 프로세서 개수라고 할때 100개의 코어로된 시스템으로 90프로가 병럴처리가능한 프로그램을 처리한다면,

 1 / (1-(0.9) + 0.9/100) = 대충 10에 수렴한다. 따라서 이 프로그램의 최대 성능향상은 최대 10배이다.

 

 

결론적으로 병렬처리프로그램에서 차례로 수행되어야하는 비교적 적은 수의 명령문들이,프로세서의 수를 추가하더라도 그 프로그램의 실행을 더 빠르게할 수 없도록 속도향상을 제한하는 요소를 갖고 있다는 것이다.