컴퓨터 구조 | Amdahl의 법칙이란?

컴퓨터를 설계함에 있어 위대한 아이디어인 자주 생기는 일을 빠르게(make common cae fast) 를 추구함에 있어 하드웨어 및 소프트웨어 설계자들이 필연적으로 고민하게 된느 문제 중의 하나는 “성능을 개선하려는 나의 노력이 얼마나 효과가 있는지 어떻게 평가할 수 있는가?” 이다.

열심히 성능을 개선하려는 노력을 했다면 그것이 얼마나 효과가 있는지 궁금해 하는 것은 당연하다.
이러한 질문들에 대한 정석적인 해답은 다음과 같다.

“성능을 개선하려는 노력이 얼마나 효과가 있는지는 그 사건이 얼마나 많이 발생하는지와 관련이 있다.”

이러한 법칙은 얼핏 보면 당연해 보이지만 많은 경우 우리에게 명확한 직관을 줄 수 있다.

간단한 예를 통해 Amdahl의 법칙 의 활용을 알아보자.
가령 프로그램의 실행 시간이 100초가 걸리는 데 그 중 80초는 곱하기 계산에 소요된다고 하자. 이 프로그램이 5배 빠르게 실행되기 위해서 곱셈 속도는 얼마나 개선되어야 하는지에 대한 문제가 있다고 하자.

이는 Amdahl 의 법칙 에 의해 다음과 같이 표현된다.

개선 후 실행시간
= (개선에 의해 영향을 받는 실행 시간)/개선의 크기 + 영향을 받지 않는 실행 시간

이 문제의 경우는

개선 후 실행시간 = 20초 = 80초 / n + (100-80)초

즉, 0=80초 / n

이라는 식을 얻을 수 있다.

이는 바로 곱셈의 성능을 백날 개선해 보아도 시스템의 성능을 5배로 올리는 것은 불가능 하다는 깨우침을 우리에게 준다.
이는 일상생활에서 수확체감의 법칙과도 연관되어 있다.

이처럼 Amdahl의 법칙을 통해 어떤 개선안이 전체 성능에 얼마만큼의 성능 개선을 가져다 줄 지를 예측 할 수 있다.
이 법칙은 CPU 성능식과 함께 잠재적 성능 개선율을 평가하는 편리한 도구이다.


운영체제 | 파일 시스템 인터페이스 컴퓨터 구조 | RISC 와 CISC 구조

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×