암달의 법칙(Amdahl’s law)은 암달의 저주라고도 불림.
핵심은, 일부 구성 요소만 개선해서는 전체 시스템의 성능을 크게 개선할 수 없음을 보여줌
공식
시스템 컴포넌트의 개선으로 향상되는 시스템 속도를 구하는 공식은 다음과 같다

- Speedup : 전체 시스템 성능 향상 비율
- P : 전체 작업 중 개선 가능한 부분의 비율 (0 ≤ P ≤ 1)
- 1-P는 어떻게 해도 성능 향상이 불가능한 부분
- S : 개선한 부분을 얼마나 빠르게 만들었는지 (속도 배수)
그래프 분석

Number of processors : 병렬 처리에 참여하는 프로세서 수
Speedup : 전체 성능 향상 비율
범례(Parallel portion) : 병렬화 가능한 작업의 비율 (50, 75, 90, 95)
- 병렬화 가능한 비율 (P)가 높을 수록 더 많은 프로세서를 활용해 성능향상을 기대할 수 있음
- 단, 아무리 프로세서를 늘려도 일정 이상 성능 향상은 불가능
- 예를 들어, 작업의 90%를 병렬화 해도 최대 10배의 속도향상을 가져갈수있음
가정
병렬 처리 환경을 염두에 두고 만들어짐 (보수적인 예측을 위해)
- 전체 작업은 병렬화 가능한 부분과 불가능한 부분으로 나뉨
- 병렬화 가능한 부분만 속도를 개선할 수 있다
- 순차처리 부분은 기술적 한계로 그대로 둔다고 가정한다.
정리
실제로 순차처리 부분은 개선이 불가능하지않음. 컴파일러 최적화, 알고리즘 개선, 하드웨어 업그레이드 등.
그래서 시스템의 성능 개선을 판단할 때 구스타프슨의 법칙 (Gustafson's law)를 같이 고려
728x90
'CS:APP' 카테고리의 다른 글
| 레지스터가 뭔데 - CS:APP 3.4 (0) | 2025.04.07 |
|---|---|
| GCC는 C를 어떻게 기계어로 짜깁기할까? - CS:APP 3.2 요약과 인사이트 (0) | 2025.04.07 |
| 캐시와 저장장치의 상관관계 (0) | 2025.03.21 |
| 1.4 프로세서는 메모리에 저장된 인스트럭션을 읽고 해석한다 (0) | 2025.03.20 |
| 1.2 프로그램은 다른 프로그램에 의해 다른 형태로 번역된다 (0) | 2025.03.20 |