암달의 법칙 계산기
병렬화할 수 있는 비율과 코어 수를 넣으면 속도가 몇 배 빨라지는지 계산합니다. 코어를 아무리 늘려도 넘지 못하는 한계도 함께 보여줍니다.
전체 일 중 여러 코어에 나눠 줄 수 있는 부분의 비율입니다.
90% 를 코어 8개로 나누면
4.71배
아무리 늘려도 10배가 한계입니다 · 지금 그 47% 지점
코어 수를 늘려 가면
| 코어 | 암달 | 효율 | 구스타프슨 |
|---|---|---|---|
| 1 | 1배 | 100% | 1배 |
| 2 | 1.82배 | 91% | 1.9배 |
| 4 | 3.08배 | 77% | 3.7배 |
| 8 | 4.71배 | 59% | 7.3배 |
| 16 | 6.4배 | 40% | 14.5배 |
| 32 | 7.8배 | 24% | 28.9배 |
| 64 | 8.77배 | 14% | 57.7배 |
| 128 | 9.34배 | 7% | 115.3배 |
| 256 | 9.66배 | 4% | 230.5배 |
| 1024 | 9.91배 | 1% | 921.7배 |
거꾸로 — 그 속도를 내려면
사용 방법
- 1전체 일 중 병렬로 나눌 수 있는 비율을 넣습니다.
- 2코어(일꾼) 수를 넣으면 속도 향상이 나옵니다.
- 3아래 표에서 코어를 늘릴 때 효율이 어떻게 떨어지는지 보세요.
자주 묻는 질문
속도 향상 = 1 ÷ ((1 − 병렬 비율) + 병렬 비율 ÷ 코어 수)입니다. 일의 일부만 병렬로 나눌 수 있을 때 코어를 늘려서 얼마나 빨라지는지 알려 줍니다.
아닙니다. 순차로 해야 하는 부분이 남아 있는 한 1 ÷ (1 − 병렬 비율)을 넘지 못합니다. 90%를 병렬화하면 코어가 1,000개여도 최대 10배입니다.
한계에 가까울수록 순차 부분을 줄이는 쪽이 압도적입니다. 병렬 99%에 코어 1,000개면 91배인데, 코어를 100배 늘려도 99.9배로 10% 더 빨라질 뿐입니다. 같은 자리에서 순차 부분을 1%에서 0.1%로 줄이면 500배가 됩니다.
묻는 것이 다릅니다. 암달은 일의 크기를 고정하고 "같은 일을 얼마나 빨리 끝낼까"를 묻고, 구스타프슨은 시간을 고정하고 "같은 시간에 얼마나 큰 일을 할까"를 묻습니다. 후자는 코어 수에 비례해 늘어나므로 상한이 없습니다.
속도 향상을 코어 수로 나눈 값으로, 코어 하나가 제 몫을 얼마나 하는지입니다. 코어 8개로 4.7배 빨라졌다면 효율은 59%이고, 나머지 41%는 버리는 셈입니다. 암달의 법칙에서는 코어를 늘릴수록 효율이 반드시 떨어집니다.
보통은 이보다 못합니다. 두 법칙 다 일을 나누고 결과를 모으고 동기화하는 통신 비용을 세지 않기 때문입니다. 그 비용은 코어 수에 따라 늘어나므로, 어느 지점을 넘으면 코어를 늘릴수록 오히려 느려집니다.
알아두면 좋은 점
- 암달: S = 1 / ((1−p) + p/n), 구스타프슨: S = (1−p) + p·n 으로 계산합니다.
- 통신·동기화 비용을 세지 않으므로 실제 속도 향상은 이보다 낮습니다.
- 병렬 비율은 실행 시간 기준입니다. 코드 줄 수 기준으로 잡으면 크게 어긋납니다.
함께 보면 좋은 도구
마지막 검증: 2026년 8월 30일 · 결과는 참고용 추정치입니다.