컴퓨터(Computer Science)/컴퓨터구조(Computer Arichitecture)

컴퓨터 성능이 생각대로 늘어나지 않는 이유, 암달의 법칙(Amdahl's Law)[컴퓨터구조]

게임이 더 좋아 2020. 5. 18. 00:57
반응형
728x170

 

우리가 클럭 2배면 컴퓨터 성능이 2배가 될 것을 기대하지만

사실  엄청난 착각을 하며 기대하고 있는 것을 가끔씩 까먹는다.

 

그 착각은

 

컴퓨터의 한 부분만 개선하고 그 개선된 양에 비례해서 전체 성능이 좋아질거라고 생각하는 것이다.

 

??

 

사실 이미 나왔던 생각이기도 하다. 

앞에서 나왔던  Make Common Case Fast 의 생각을 하면 되겠다.

 


이제 자세히 알아보자

 

이 식을 보고 넘어가자

T는 시간이다.

 

 

예를 들어서

컴퓨터에서 100초 걸리는 프로그램이 있는데 그 중 80초는 더하기, 곱셈 연산에 쓰인다고 하자. 

그렇다면 이 프로그램을 5배 빠르게 하려면 더하기, 곱셈 연산은 어느 정도의 속도로 향상시켜야 할까?

 

더하기 연산의 속도를 5배로 올린다고 바로 프로그램의 수행시간이 바로 20초로 줄어들까???

전혀 아니다. 

 


 

그렇다면 얼마나 속도를 향상시켜야할지 어떻게 계산할까??

그게 바로 암달의 법칙이다. 

 

 

위에는 암달의 법칙에서 일반식이고

 

이 문제에 적용하자면

 

이렇게 나온다. 

 

즉 곱셈 80s, 덧셈 20s걸리는 시간에

곱셈의 성능을 n배 좋아지게 하더라도..? 

전체 시간이 n배 줄어드느냐??

그것이 아니라는 이야기다.

 

** 저 식을 20초로 만들 수 있을까??? // 불가능하다

 

즉 아무리 어느 한 부분을 100배 빠르게 하더라도 전체 프로그램을 5배 향상시키는 것은 불가능하다.

100배하면.. 20.8초 되겠네

 


그렇다면 암달의 법칙이 뜻하는 바는 뭐냐??

 

일부의 성능을 개선으로 전체의 성능을 개선하는데에는 한계가 있다는 것이다.

그리고 어떤 부분을 개선하느냐에 따라 성능에 영향을 크게 미친다는 것이다.

 

다시 말하자면

가장 반복되는 부분을 가장 많이 향상시킨다면 정말 이상적인 성능 개선이 되는 것이다. 

 

** 덧셈의 성능보다 곱셈의 성능을 개선하는 것이 이득인 이유이다.

 

++ 여기서 확장된다면 싱글 코어에서 듀얼 코어가 되었다고

바로 성능이 2배로 향상되는 것은 아님을 다시 말할 수 있다.

 

 

728x90
반응형
그리드형