본문 바로가기

IT용어 또는 정리

암달의 법칙

Amdahl's law ; 암달의 법칙

컴퓨터 프로그래밍에서 말하는 암달의 법칙이란, 병렬처리 프로그램에서 차례로 수행되어야하는 비교적 적은 수의 명령문들이, 프로세서의 수를 추가하더라도 그 프로그램의 실행을 더 빠르게 할 수 없도록 속도향상을 제한하는 요소를 갖고 있다는 것이다. 이것은 특정 업무의 병렬처리에 대한 일반적인 논쟁이며, 병렬처리에 관한 과장된 요구에 대비되는 것이다. 다른 사람들은 병렬처리가 가장 잘 맞는 업무의 종류는, 프로세서의 수를 늘리면 실제로 처리량이나 성능 면에서 이에 상응하는 개선을 가져올 수 있는 대형 문제들이라고 주장한다.
인용 : 
www.terms.co.kr 

 한마디로.. 싱글코어로 실행하는 작은 명령문(간단한 프로그램)들이 멀티코어에서 실행하여도 그 실행속도가 빠르게 할 수 없도록 속도향상을 방해하는 요소들이 있다고 한다.

 예를들어 간단한 프로그램을 만들고 (구구단이라던가 계산기 등) taskmgr로 cpu사용률을 모니터링 한 상태로 프로그램을 실행시키면 4코어라 할경우 하나의 코어에만 실행을 한다. 싱글코어랑 차이가 별 없다. 
이러한 단점을 극복(?) 하기위해 병렬 프로그래밍이 있는듯 하다. 실제로 코드부분에 이 루틴은 1번코어가 다른루틴은 2번코어가 실행하도록 설정할 수 있다. 동시성을 적용해 여러 코어로 하나의 프로그램을 실행할 수 있다는 것이다.
하지만 병렬프로그래밍으로도 해결못하는 전력문제... 좀더 지켜봐야할듯...

 그리고 문제점이 뭐가있는지 보면... multicore processors의 통신과 동기화는 성능을 높이는 데 가장 큰 장벽이 되곤하며 전력 소비 역시 병렬 컴퓨팅에서 주요 고려사항임.


p.s : 생각을 봤는데 OS자체에서 해결할 수는 없을까? 프로그램을 실행하면 프로그램 안에있는 각각의 루틴을 각각의 코어로 실행하는것이 프로그래머가 설정을 해줘야만 할 수 있는것일까...  CPU에 관련된거라면 CPU 스케쥴링이 있을텐데, 흔히 OS를 공부하면 나오는(RR 등..) 스케쥴링들은 싱글코어 또는 다중코어에만 적용되는 것일까.. 다중코어 전문 스케쥴링은 없을까.. 의문이 든다 찾아봐야지.
 

'IT용어 또는 정리' 카테고리의 다른 글

카페에서 Wifi 접속이 안 될 경우  (0) 2012.08.16
i386 ?? x86 ?? x86_64 ??  (0) 2012.03.27
const 포인터! 해깔린다..  (0) 2012.01.12
BigData ??  (1) 2012.01.06
DB) 트랜젝션, transaction 이란  (0) 2011.12.28