암달의 법칙
IT위키
더 많은 작업
- Amdahl's Law
- 프로그램의 일부만 빠르게 하거나 병렬화할 때 전체 성능 향상에는 개선되지 않는 부분이 상한을 정한다는 법칙
진 암달(Gene M. Amdahl)이 1967년 AFIPS 춘계 합동 컴퓨터 학술대회 논문에서 단일 프로세서 접근의 타당성을 논하며 제시했다.[1]
전체 실행 시간 가운데 병렬화(개선)할 수 있는 비율을 P, 프로세서(코어) 수를 N 이라 하면
속도 향상 S(N) = 1 / ((1 − P) + P / N)
- 1 − P 는 순차로만 실행되는 부분으로, 코어를 늘려도 줄지 않는다.
- N 이 무한히 커지면 P / N 은 0 에 가까워지므로 S 의 상한은 1 / (1 − P) 이다.[2]
- 일반형은 개선 비율 F 를 S 배 빠르게 할 때 1 / ((1 − F) + F / S) 이다.
병렬화 가능 85%(P = 0.85), 코어 8개(N = 8), 통신·락 오버헤드 무시
- 순차 부분 1 − P = 0.15
- 병렬 부분 P / N = 0.85 / 8 = 0.10625
- 합 0.15 + 0.10625 = 0.25625
- S = 1 / 0.25625 ≒ 3.90배
코어를 무한히 늘려도 1 / 0.15 ≒ 6.67배를 넘지 못한다. 8개 코어로 8배 가까이 빨라지지 않는 것은 순차 부분 15% 때문이다.
병렬화 비율 80%, 코어 4개라면 1 / (0.2 + 0.8 / 4) = 1 / 0.4 = 2.5배이다.
| 구분 | 암달의 법칙 | 구스타프슨의 법칙 |
|---|---|---|
| 전제 | 문제 크기 고정(강한 확장성) | 코어 수에 맞춰 문제 크기를 키움(약한 확장성) |
| 결론 | 순차 부분이 속도 향상의 상한을 정한다 | 큰 문제에서는 코어 수에 거의 비례해 처리량이 는다 |
| 식 | 1 / ((1 − P) + P / N) | (1 − P) + P × N |
- ↑ Gene M. Amdahl, 「Validity of the single processor approach to achieving large scale computing capabilities」, AFIPS Spring Joint Computer Conference, 1967, https://doi.org/10.1145/1465482.1465560, 확인일: 2026-11-04.
- ↑ 「Amdahl's Law」, Brown University CSCI 1760 handout, https://cs.brown.edu/courses/csci1760/handouts/amdahl.pdf, 확인일: 2026-11-04.
- 프로세스 수를 병렬화해도 성능 향상의 한계 존재
제니 암달(Gene M. Amdahl)이 1967년 논문에서 발표
CPU 4개를 병렬화해도 성능 향상은 2.5배