문제 크기가 고정되지 않고 프로세서 수에 따라 커지는 병렬 작업에 대해, 구스타프손의 법칙으로 확장 속도 향상을 추정한다.
입력
작업량
%
0 – 100 %
병렬 시스템에서 측정한, 확장된 작업량 중 병렬로 실행되는 비율이다. 나머지는 모든 프로세서가 공유하는 직렬 부분이다.
사용되는 병렬 처리 단위(코어, 스레드, 노드)의 개수이다.
결과
값을 입력하면 계산 결과가 표시됩니다.
확장 속도 향상
실행의 95 %이 병렬일 때, 프로세서 한 대에 비해 16개의 프로세서로 같은 시간 동안 얼마나 더 많은 작업을 완료하는지를 나타낸다.
효율
%
확장 속도 향상을 16개의 프로세서로 나눈 값으로, 프로세서 한 대가 유효한 처리량에 기여하는 비중을 나타낸다.
구스타프손의 법칙
구스타프손의 법칙은 문제 크기가 프로세서 수와 함께 커질 때 병렬 프로그램의 속도 향상을 추정한다. 이는 암달의 법칙이 던지는 확장성 질문을 재구성한다. 작업량을 고정하고 실행을 단축하는 대신, 시간 예산을 고정하고 더 큰 기계가 얼마나 더 많은 작업을 완료할 수 있는지를 묻는다. 이 계산기는 실행의 병렬 비율과 프로세서 수를 입력받아 확장 속도 향상과 병렬 효율을 반환한다.
고정된 작업이 아니라 고정된 시간
실무자들이 더 큰 클러스터를 도입할 때, 흔히 같은 작업을 더 빨리 실행하는 것이 아니라 같은 시간에 더 큰 작업을 실행한다. 기상 모델은 더 촘촘한 격자로 옮겨 가고, 렌더러는 더 많은 프레임을 만들어 내며, 학습 실행은 더 많은 데이터를 받아들인다. 이러한 상황에서 작업의 병렬 부분은 추가된 프로세서를 채우도록 확장되는 반면, 직렬 오버헤드(시작, 조율, 최종 집계)는 대체로 일정하게 유지된다.
구스타프손의 법칙은 이를 포착한다. 를 병렬 시스템에서 측정한 실행 시간 중 병렬 작업의 비율, 를 모든 프로세서가 공유하는 직렬 비율이라 하자. 개의 프로세서에서의 확장 속도 향상은 다음과 같다.
병렬 항이 에 따라 선형으로 증가하므로, 예측되는 속도 향상은 상한에 부딪혀 평탄해지는 대신 프로세서가 추가될수록 계속 상승한다.
예제
16-프로세서 시스템에서 실행의 95%가 병렬 작업이라고 하자. 확장 속도 향상은 다음과 같다.
S=(1−0.95)+0.95×16=0.05+15.2=15.25
따라서 16-프로세서 시스템은 같은 벽시계 시간 안에 프로세서 한 대의 약 15.25배에 해당하는 작업을 완료하며, 병렬 효율은 이다. 이를 크기를 고정한 관점과 대조해 보면, 동일한 95%의 병렬 비율이 16개의 프로세서에서 속도 향상을 약 9.1배로, 극한에서는 20배로 제한한다.
강한 확장성과 약한 확장성
두 법칙의 차이는 강한 확장성과 약한 확장성의 차이이다. 강한 확장성은 암달의 법칙 계산기의 영역으로, 문제를 고정하며 직렬 비율에 의해 제한된다. 약한 확장성은 구스타프손의 법칙의 영역으로, 하드웨어와 함께 문제를 키우며 거의 선형으로 확장된다. 어느 법칙도 보편적으로 옳지는 않으며, 적절한 선택은 작업량이 고정되어 있는지 아니면 주어진 자원을 사용하도록 늘어나는지에 따라 달라진다.
병렬 비율은 확장된 시스템에서 측정되고 문제 크기에 의존하므로, 결과는 정확한 보장이 아니라 예상되는 동작의 추정치로 다루어야 한다. 구스타프손과 암달의 가정 모두로 속도 향상을 추정하면 가능한 범위를 가늠할 수 있다.
자주 묻는 질문 (FAQ)
구스타프손의 법칙이란 무엇인가?
구스타프손의 법칙(Gustafson's law)은 1988년 존 구스타프손(John Gustafson)이 발표한 것으로, 문제 크기가 프로세서 수에 따라 커질 때 병렬 프로그램의 속도 향상을 모형화한다. 병렬 시스템에서의 실행 시간 중 비율 p가 병렬 작업이고 1 − p가 직렬이라면, N개의 프로세서에서의 확장 속도 향상은 S = (1 − p) + p × N이다.
크기를 고정한 분석과 달리, 속도 향상은 N에 따라 거의 선형으로 증가한다. 더 큰 기계는 같은 벽시계 시간 안에 그에 비례해 더 큰 문제를 푸는 데 쓰이기 때문이다.
구스타프손의 법칙은 암달의 법칙과 어떻게 다른가?
암달의 법칙(Amdahl's law)은 문제 크기를 고정한 채 프로세서를 늘렸을 때 얼마나 빨리 끝나는지를 묻기 때문에 직렬 비율이 속도 향상의 상한을 정한다. 구스타프손의 법칙은 시간 예산을 고정하고 문제가 커지도록 허용하므로, 병렬 비율은 더 커진 문제에서 측정되고 속도 향상은 거의 선형으로 확장된다.
두 법칙은 서로 모순되지 않으며 각각 강한 확장성과 약한 확장성을 기술한다. 어느 쪽이 적절한지는 작업량이 고정되어 있는지, 아니면 가용 하드웨어를 채우도록 늘어나는지에 따라 달라진다.
약한 확장성과 강한 확장성이란 무엇인가?
강한 확장성은 전체 문제 크기를 일정하게 유지한 채 프로세서를 추가해 더 빨리 끝내는 것으로, 암달의 법칙이 기술하는 영역이며 직렬 작업에 의해 제한된다.
약한 확장성은 프로세서당 작업량을 일정하게 유지하면서 프로세서가 추가됨에 따라 문제를 키우는 것으로, 구스타프손의 법칙이 기술하는 영역이다. 많은 과학 및 데이터 작업이 약한 확장성으로 실행된다. 연구자들은 고정된 실행을 단축하기보다 더 촘촘한 격자나 더 큰 데이터셋을 시뮬레이션하기 위해 노드를 추가한다.
암달의 법칙 대신 구스타프손의 법칙을 언제 사용해야 하는가?
유효한 문제 크기가 자원에 따라 자연스럽게 확장되는 경우에 구스타프손의 법칙을 사용한다. 예컨대 더 많은 데이터로 학습하거나, 더 많은 프레임을 렌더링하거나, 노드가 늘어났을 때 더 큰 영역을 시뮬레이션하는 경우가 그렇다. 작업이 고정되어 있고 단지 더 빨리 끝내고 싶을 때는 암달의 법칙을 사용한다. 실제로는 많은 시스템이 두 모형 사이에 위치하므로, 두 모형 모두로 속도 향상을 추정해 가능한 결과의 범위를 가늠해 보는 것이 바람직하다.