문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 시스템 최적화]] [[분류: 동시성 프로그래밍]] == 개요 == 병렬 컴퓨팅에서 멀티 프로세서를 사용할 때 프로그램의 성능향상은 프로그램의 순차적인 부분에 의해 제한된다. 예를 들면, 프로그램의 95%가 병렬화 할 수 있다면 이론적인 최대 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 20배로 제한된다. '''암달의 법칙'''(Amdahl's law)은 '''암달의 저주'''로도 불리며 컴퓨터 시스템의 일부를 개선할 때 전체적으로 얼마만큼의 최대 성능 향상이 있는지 계산하는 데 사용된다. 암달의 법칙에 따르면, 어떤 시스템을 개선하여 전체 작업중 P의 부분에서 S배의 성능이 향상되었을 때 전체 시스템에서 최대 성능 향상은 다음과 같다. :<math>\frac{1}{(1-P) + \frac{P}{S}}</math> :(개선 후 실행시간 = 개선에 의해 영향을 받는 실행 시간 / 성능 향상 비율 + 영향을 받지 않는 실행 시간) 예를 들어서 어떤 작업의 40%에 해당하는 부분의 속도를 2배로 늘릴 수 있다면, P는 0.4이고 S는 2이고 최대 성능 향상은 :<math>\frac{1}{(1-0.4) + \frac{0.4}{2}} = 1.25</math> 가 된다. 즉 어떠한 프로그램도 절대 완벽히 병렬화 할 수 없으면, 그 프로그램의 성능 향상은 병렬화 정도에 비하여 상당히 제약되게 된다. 거의 대다수의 프로그램들이 순차적 실행을 필요로 하는 과정이 있음으로 암달의 법칙을 적용하면 코어를 개수를 무작정 늘리는 방식으로는 성능의 향상에 한계가 있음을 알 수 있다. 암달의 법칙 문서로 돌아갑니다.