암달의 법칙과 구스타프슨의 법칙의 차이: 전제·식·스케일링·예 비교
둘 다 프로세서를 늘렸을 때 얼마나 빨라지는지를 추정하는 법칙이지만, 전제가 다릅니다. 암달의 법칙은 문제의 크기를 고정하고 같은 일을 빨리 끝내는 것을 생각하므로, 병렬화할 수 없는 부분이 속도 향상의 상한을 정합니다. 구스타프슨의 법칙은 실행 시간을 고정하고 프로세서를 늘린 만큼 더 큰 문제를 푸는 것을 생각하므로, 속도 향상은 프로세서 수에 거의 비례해 늘어납니다. 두 법칙은 모순되는 것이 아니라 서로 다른 질문에 답하고 있습니다.
| 비교 항목 | 암달의 법칙 | 구스타프슨의 법칙 |
|---|---|---|
| 고정하는 것 | 문제의 크기(전체 작업량) | 실행 시간(프로세서 1개당 작업량) |
| 질문 | 같은 문제를 얼마나 빨리 풀 수 있는가 | 같은 시간에 얼마나 큰 문제를 풀 수 있는가 |
| 식(N은 프로세서 수) | S = 1 / ((1 − p) + p / N) | S = s + (1 − s) × N = N − s × (N − 1) |
| 비율의 측정 방법 | p는 1대로 실행했을 때 병렬화할 수 있는 부분이 차지하는 시간의 비율 | s는 N대로 병렬 실행했을 때 순차 부분이 차지하는 시간의 비율 |
| N을 늘렸을 때 | 1 / (1 − p)에서 한계에 도달함 | N에 거의 비례해 계속 증가함 |
| 계산 예 | p = 0.95이면 N = 100에서 약 17배, N을 무한대로 해도 20배가 상한 | s = 0.05이면 N = 100에서 약 95배 |
| 대응하는 스케일링 | 강한 스케일링 | 약한 스케일링 |
| 보이는 방식 | 비관적. 약간의 순차 부분이 상한을 정함 | 낙관적. 문제를 크게 하면 병렬화가 보상받음 |
| 해당하는 예 | 정해진 크기의 입력을 바로 처리하고 싶을 때. 이미지 1장의 처리, 대화형 응답 등 | 격자를 더 촘촘하게 한 시뮬레이션, 더 큰 데이터나 모델을 같은 시간에 처리하고 싶을 때 |
| 공통으로 포함되지 않은 것 | 통신·동기화 오버헤드, 부하 불균형, 메모리 대역폭 부족 | 통신·동기화 오버헤드, 부하 불균형, 메모리 대역폭 부족 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.