암달의 법칙 사용법
원래 단일 프로세서 실행 시간 중 여러 프로세서에 나눌 수 있는 비율을 입력하세요. 프로세서·작업자 수와 양의 기준 실행 시간도 입력하세요. 시간 단위는 표시용이므로 예상 결과를 해석할 때 같은 단위를 쓰세요.
작업량이 고정된 상황을 모델링해요. 컴퓨터 성능을 측정하거나 코드를 검사하거나 병렬화 비율을 찾아내지 않아요. 프로파일링이나 근거 있는 작업량 분석으로 비율을 추정하세요.
- 병렬화 가능한 부분을 0~100%로 입력하세요.
- 프로세서 수를 1 이상의 정수로 입력하세요.
- 프로세서 하나일 때의 기준 실행 시간을 입력하고 초·분·시간을 고르세요.
- 이상적인 속도 향상, 효율, 예상 실행 시간, 절약 시간, 직렬 비율과 극한 속도 향상을 계산하세요.
공식과 해석
병렬 비율 P, 프로세서 수 N이면 상대 실행 시간은 (1 − P) + P/N이에요. 속도 향상은 그 역수, 효율은 속도 향상을 N으로 나눈 값이에요. 예상 실행 시간은 기준 실행 시간에 상대 실행 시간을 곱한 값이에요.
직렬 비율 1 − P가 결과의 한계를 정해요. N이 무한대로 갈수록 이상적인 속도 향상은 1/(1 − P)에 가까워져요. P가 정확히 100%이면 단순화한 상한은 무제한이지만 실제 기기에는 추가 비용과 유한한 자원이 있어요.
풀이 예시
프로세서 8개, 병렬화 90%
상대 실행 시간은 0.10 + 0.90/8 = 0.2125예요. 속도 향상은 약 4.71배, 효율은 약 58.82%예요. 기준 100초는 21.25초가 되어 78.75초를 절약해요.
프로세서 4개, 병렬화 50%
상대 실행 시간은 0.50 + 0.50/4 = 0.625예요. 속도 향상은 1.6배, 효율은 40%예요. 프로세서가 무한히 많아도 상한은 2배예요.
프로세서가 늘수록 추가 효과가 줄어드는 이유
프로세서를 추가하면 P/N만 줄고 직렬 부분은 줄지 않아요. 병렬 항이 직렬 항보다 작아지면 프로세서를 더 넣어도 전체 시간이 조금만 바뀌어요. 그래서 이 이상적인 고정 작업량 모델에서도 프로세서를 늘릴수록 효율은 대체로 낮아져요.
현실적인 프로세서 수를 비교하고 줄어드는 예상 시간이 추가 자원에 걸맞은지 판단하는 자료로 쓰세요. 이론적 상한에 가까운 추정이지 실제 성능의 보장이 아니에요.
가정과 한계
- 작업량과 병렬화 비율은 고정돼요.
- 병렬 작업은 완벽히 나뉘고 프로세서 성능은 같다고 가정해요.
- 통신, 동기화, 스케줄링, 메모리 대역폭, 캐시 효과, 시작 비용, 자원 경합과 부하 불균형의 비용을 0으로 봐요.
- 기준 시간은 같은 작업과 구현을 나타내야 해요.
- 실제 실행은 더 느릴 수 있고 추가 비용이 크면 오히려 나빠질 수도 있어요.
자주 묻는 질문
병렬화 비율은 CPU 사용률인가요?
아니요. 원래 실행 시간 중 병렬 처리로 빨라질 수 있는 부분의 비율이에요.
프로세서 8개인데 8배 빨라지지 않는 이유는?
직렬 작업은 그대로 남으며 이 이상적인 모델도 그 부분을 나눌 수 없어요.
효율은 무엇을 뜻하나요?
속도 향상을 프로세서 수로 나눈 값이며 이상적인 선형 증가 대비 백분율로 표시해요.
모델에 추가 처리 비용이 포함되나요?
아니요. 안내에 명시된 대로 추가 처리 비용은 제외해요.
언제 실제 성능을 측정해야 하나요?
중요한 용량·하드웨어 결정을 내리기 전에는 항상 측정하세요. 이 모델은 기대 범위를 잡는 데 사용하세요.