맨위로가기

구스타프슨의 법칙

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

구스타프슨의 법칙은 병렬 컴퓨팅에서 프로그램의 속도 향상을 예측하는 법칙이다. 이는 암달의 법칙과 달리, 자원 개선에 따라 문제 크기를 늘리는 경향을 고려하여, 병렬 처리 시 프로세서 수 증가에 따라 성능 향상을 이룰 수 있다고 주장한다. 구스타프슨의 법칙은 병렬 시스템에서의 속도 향상, 수식, 암달의 법칙과의 관계, 비유 등을 통해 설명되며, 연구 및 일반 컴퓨터 시스템 응용에 대한 가능성을 제시한다. 하지만, 문제의 특성 및 알고리즘의 비선형성, 그리고 순차적 실행 속도 향상의 필요성 등과 같은 한계점도 존재한다.

더 읽어볼만한 페이지

  • 병렬 알고리즘 분석 - 암달의 법칙
    암달의 법칙은 시스템 자원 개선으로 속도 향상을 얻는 부분의 비율을 고려하여 전체 작업의 이론적인 실행 시간을 계산하고, 이를 통해 전체 작업의 속도 향상 정도를 파악하는 이론이다.
  • 병렬 알고리즘 분석 - 데이터 의존성
    데이터 의존성은 명령어 실행 순서와 병렬 처리에 영향을 미치는 중요한 개념으로, 진 의존성, 반의존성, 출력 의존성의 세 가지 유형으로 분류되며, 프로세서 설계, 컴파일러 구축 등 컴퓨팅 전반에 걸쳐 중요한 영향을 미칩니다.
구스타프슨의 법칙

2. 정의

구스타프슨의 법칙은 병렬 처리를 통해 프로그램의 속도 향상을 추정하는 법칙이다. 병렬 컴퓨터에서 프로그램 실행 시간은 순차적인 부분(a)과 병렬적인 부분(b)으로 나눌 수 있다. 구스타프슨은 총 작업량이 프로세서 수에 따라 선형적으로 변한다고 가정했다.

프로세서 당 병렬 처리 시간(b)은 프로세서 수(P)가 변해도 고정되며, 순차적 처리에 걸리는 시간은 a + P\cdot b이다. 따라서 속도 향상은 (a + P\cdot b)/(a+b)로 계산된다. 병렬 처리에서 순차적인 부분의 비율을 \alpha = a/(a+b)로 정의하면, 속도 향상 S(P)S(P)= \alpha + P\cdot(1-\alpha) = P - \alpha\cdot(P-1)이다.

만약 순차적 처리 비중(\alpha)이 작다면 속도 향상은 대략 프로세서 수(P)에 비례한다. 문제 크기가 증가함에 따라 P가 증가하면 \alphaP가 된다.

2. 1. 수식

S = s + p \times N = s + (1 - s) \times N = N + (1 - N) \times s

  • S: 병렬 처리를 사용한 프로그램의 이론적인 속도 향상 (확장 속도 향상)[2]
  • N: 프로세서의 수
  • sp는 병렬 시스템에서 프로그램의 직렬 부분과 병렬 부분을 실행하는 데 소요되는 시간의 비율이며, s + p = 1이다.


또는 Sp를 사용하여 표현할 수 있다.

\begin{align}

S &= (1 - p) + p \times N \\

&= 1 + (N - 1) \times p

\end{align}

구스타프슨의 법칙은 자원의 개선에 따라 실행 작업량이 변하지 않는 고정된 문제 크기를 가정하는 암달의 법칙의 단점을 해결한다. 대신, 구스타프슨의 법칙은 프로그래머가 자원이 개선됨에 따라 사용 가능한 컴퓨팅 성능을 최대한 활용하기 위해 문제의 크기를 늘리는 경향이 있다고 제안한다.[2]

구스타프슨과 그의 동료들은 워크로드를 통해 직렬 부분에 대한 시간이 일반적으로 문제와 시스템이 확장됨에 따라 증가하지 않으며,[2] 즉, s가 고정되어 있음을 추가로 관찰했다. 이는 위에 표시된 그림과 같이 프로세서 수 N과 속도 향상 S 사이에 기울기가 1 - s인 선형 모델을 제공한다(다른 표기법 사용: PN을 나타내고 as를 나타낸다). 또한 S암달의 법칙에서 지수적으로 증가하는 대신 s에 따라 선형적으로 확장된다.[2] 이러한 관찰을 통해 구스타프슨은 "병렬 컴퓨팅에 대한 [자신들의] 성공을 더 광범위한 응용 분야와 훨씬 더 큰 N 값으로 확장할 것으로 예상했다".[2]

2. 2. 암달의 법칙과의 관계

암달의 법칙은 실행 작업량이 고정된 문제 크기를 가정한다는 단점이 있다. 반면 구스타프슨의 법칙은 프로그래머가 사용 가능한 컴퓨팅 성능을 최대한 활용하기 위해 문제의 크기를 늘리는 경향이 있다고 제안한다.[2]

구스타프슨과 그의 동료들은 직렬 부분에 대한 시간이 문제와 시스템이 확장됨에 따라 증가하지 않고, s가 고정되어 있음을 관찰했다.[2] 이는 프로세서 수 N과 속도 향상 S 사이에 기울기가 1 - s인 선형 모델을 제공한다(다른 표기법 사용: PN을, as를 나타낸다). 암달의 법칙에서 S는 지수적으로 증가하지만, 구스타프슨의 법칙에서는 s에 따라 선형적으로 확장된다.[2] 이러한 관찰을 통해 구스타프슨은 "병렬 컴퓨팅에 대한 [자신들의] 성공을 더 광범위한 응용 분야와 훨씬 더 큰 N 값으로 확장할 것으로 예상했다".[2]

구스타프슨의 법칙은 연구 목표를 선택하거나 문제를 재구성하여 동일한 시간 내에 더 큰 문제를 해결할 수 있도록 하였다. 이 법칙은 프로그램의 순차적 부분에 의해 부과된 제한 사항이 총 계산량을 늘림으로써 해결될 수 있다는 가능성 때문에 효율성을 재정의한다.

구스타프슨의 법칙은 언뜻 보면 암달의 법칙의 한계로부터 병렬 컴퓨팅을 구해낼 수 있는 것처럼 보인다.

두 법칙의 차이는, 구스타프슨의 법칙은 방대한 수의 병렬 계산기를 사용해도 직렬적인 부분에 주는 영향이 없고, 따라서 그 부분의 크기는 일정하다고 생각하는 반면, 암달의 법칙은 프로세서의 수가 증가함에 따라 직렬적인 부분의 영향이 증가한다고 가정하는 데에서 비롯된다.

3. 유도

병렬 컴퓨터에서 프로그램 실행 시간은 다음과 같이 표현된다.

:(a + b)

여기서 a는 순차적인 처리 시간, bP개의 프로세서에서의 병렬 처리 시간이다. (오버헤드는 무시)

구스타프슨은 병렬 처리되는 총 작업 시간이 프로세서 수에 따라 선형적으로 변한다고 가정했다. 즉, 프로세서당 병렬 처리 시간 bP가 변해도 고정되어야 하며, 순차적 처리 시간은 다음과 같다.

:a + P\cdot b

따라서 속도 향상은 다음과 같이 계산된다.

:(a + P\cdot b)/(a+b)

병렬 처리에서 순차적인 처리 부분의 비율을 \alpha = a/(a+b)로 정의하면, 다음 식을 얻을 수 있다.

:S(P)= \alpha + P\cdot(1-\alpha) = P - \alpha\cdot(P-1)

이 식에 따르면, 순차적 처리 비중(\alpha)이 작다면 속도 향상은 대략 P에 근접한다. 또한 문제 크기가 증가함에 따라 P가 증가하면 \alphaP가 된다.

병렬 시스템에서 실행되는 프로그램의 실행 시간은 프로세서 수 증가의 이점을 얻지 못하는 직렬 부분과 이점을 얻는 병렬 부분으로 나눌 수 있다.

예를 들어, 디스크에서 파일을 처리하는 컴퓨터 프로그램을 생각해 보자. 프로그램의 일부는 디스크의 디렉토리를 스캔하여 메모리에 파일 목록을 생성하고, 다른 부분은 각 파일을 별도의 스레드로 전달하여 처리한다. 디렉토리를 스캔하고 파일 목록을 생성하는 부분은 병렬 컴퓨터에서 속도를 높일 수 없지만, 파일을 처리하는 부분은 속도를 높일 수 있다.

병렬 시스템에서의 총 실행 시간을 T = 1로 설정하고, 직렬 시간을 s, 병렬 시간을 p로 표시하면, s + p = 1이다. 프로세서 수를 N으로 표시한다.

직렬 시스템(하나의 프로세서)에서 프로그램을 실행하면 직렬 부분은 s, 병렬 부분은 Np가 걸린다. 따라서 직렬 시스템에서의 실행 시간은 다음과 같다.

:T' = s + Np

T'를 기준으로 병렬 시스템의 속도 향상은 다음과 같다.

:S = \frac{T'}{T} = \frac{s + Np}{s + p} = \frac{s + Np}{1} = s + Np

p = 1 - s 또는 s = 1 - p를 대입하여 이전 섹션의 여러 형태를 도출할 수 있다.

문제의 크기를 나타내는 양을 n이라고 하면, 병렬 컴퓨터 상에서의 프로그램 실행은 다음과 같이 분해할 수 있다.

:a(n) + b(n) = 1

여기서 a는 직렬적인 부분의 비율, b는 병렬적인 부분의 비율이다. (오버헤드는 무시)

직렬적인 컴퓨터에서는 p병렬화했을 때의 프로세서 수라고 하면, 상대적인 처리 시간은 a(n) + p \cdot b(n)이다.

즉, 속도 향상은 직렬적인 경우의 a(n) + b(n) = 1에 대해 병렬화했을 경우에는 (a(n) + p \cdot b(n))이므로 다음과 같다.

:S = a(n) + p ( 1 - a(n) )

여기서 a(n)은 직렬적인 부분의 비율을 나타내는 함수이다.

직렬적인 함수 a(n)이 문제의 크기 n에 따라 감소한다고 가정하면, 속도 향상은 n이 무한히 커지면 원하는 대로 p에 도달한다.

구스타프슨의 법칙은 암달의 법칙의 한계로부터 병렬 컴퓨팅을 구해낼 수 있는 것처럼 보인다.

이러한 차이는 구스타프슨의 법칙은 방대한 수의 병렬 계산기를 사용해도 직렬적인 부분에 주는 영향이 없고, 따라서 그 부분의 크기는 일정하다고 생각하는 반면, 암달의 법칙은 프로세서의 수가 증가함에 따라 직렬적인 부분의 영향이 증가한다는 생각에서 비롯된다.

4. 비유



5. 응용

연구 분야에서는 더 많은 컴퓨팅 성능을 통해 데이터를 더 정밀하고 완전하게 분석할 수 있다. 예를 들어, 더 많은 변수를 고려한 핵폭발 시뮬레이션이 가능하다. 이전에는 핵 폭발이 모든 건물, 자동차 및 그 내용물(가구, 구조 강도 등 포함)에 미치는 영향을 시뮬레이션하는 것이 불가능하거나 실용적이지 않았지만, 컴퓨팅 성능이 증가함에 따라 연구자들은 더 많은 데이터를 추가하여 더 완벽하게 시뮬레이션하고 더 정확한 결과를 얻을 수 있게 되었다.[1]

일반 컴퓨터 시스템에서는 컴퓨팅 성능 향상에 따라 시스템의 기능과 성능을 향상시킬 수 있다. 예를 들어, 대부분의 사용자에게 1분 부팅 시간이 허용 가능하다면, 운영 체제 부팅에 걸리는 시간은 동일하게 유지하면서 더 많은 그래픽 또는 사용자 친화적인 기능을 포함할 수 있다.[1]

한국의 경우, 대규모 데이터를 활용하는 인공지능, 빅데이터 분석, 과학기술 연구 등 다양한 분야에서 구스타프슨의 법칙을 적용하여 더 높은 수준의 연구 성과를 얻을 수 있다.

해결하려는 문제에 따라 본질적으로 대규모 데이터 세트를 갖지 못하는 경우가 있다. 예를 들어, 전 세계의 모든 사람에 대해 하나씩 존재하는 데이터를 처리하는 문제는 연간 몇 퍼센트밖에 커지지 않는다.[1]

비선형 알고리즘은 구스타프슨의 법칙에 의해 "분명하게" 드러나는 병렬성을 잘 활용하지 못하는 경우가 있다. 스나이더(Snyder)는 O(N3) 알고리즘에서는 병렬성을 두 배로 늘려도 문제 크기를 9% 증가시키는 것밖에 안 된다고 지적했다. 따라서 매우 높은 병렬성을 실현하더라도 원래의 병렬화 정도가 적은 방법에 대해서는 별다른 이점이 없을 수 있다. 하지만 실제로는 특히 클러스터나 콘도르와 같은 분산 컴퓨터를 사용함으로써 큰 진보가 이루어지고 있다.[1]

6. 한계

일부 문제는 근본적으로 더 큰 데이터 세트를 가질 수 없다. 예를 들어, 세계 시민 1인당 하나의 데이터 포인트를 처리하는 것은 연간 몇 %씩만 증가한다. 구스타프슨의 법칙의 요점은 이러한 문제가 병렬 처리의 가장 유망한 응용 분야가 아닐 가능성이 높다는 것이다.

비선형 알고리즘은 구스타프슨의 법칙에 의해 "노출된" 병렬 처리를 활용하기 어려울 수 있다. 스나이더[3]O(N^3) 알고리즘은 동시성을 두 배로 늘려도 문제 크기가 약 26%밖에 증가하지 않는다는 점을 지적한다. 따라서 광대한 동시성을 차지하는 것이 가능할 수 있지만, 그렇게 하는 것은 원래의 덜 동시적인 솔루션에 비해 이점이 거의 없을 수 있다. 그러나 실제로는 상당한 개선이 이루어졌다.

힐과 마티[4]는 멀티코어 머신에서도 순차적 실행 속도를 높이는 방법이 여전히 필요하다고 강조한다. 그들은 지역적으로 비효율적인 방법이 순차적 단계를 줄일 때 전체적으로 효율적일 수 있다고 지적한다. 또한, 우와 리[5]는 암달의 법칙을 기반으로 미래의 많은 코어 프로세서에 대한 에너지 및 전력의 영향을 연구하여, 실행 전에 병렬 처리 양이 알려진 경우 비대칭 많은 코어 프로세서가 최적의 코어 수를 활성화하여 최상의 에너지 효율을 달성할 수 있음을 보여주었다.

알-하야니, 라피예프 등[6][7]은 코어 이질성의 일반적인 표현을 기반으로 한 새로운 속도 향상 및 에너지 소비 모델을 개발했으며, 이를 정규 형태 이질성이라고 하며, 광범위한 이질적 많은 코어 아키텍처를 지원한다. 이러한 모델링 방법은 시스템 전력 효율성 및 성능 범위를 예측하는 것을 목표로 하며, 하드웨어 및 시스템 소프트웨어 수준에서 연구 개발을 촉진한다.

참조

[1] 서적 Structured Parallel Programming: Patterns for Efficient Computation Elsevier
[2] 논문 Reevaluating Amdahl's Law http://www.johngusta[...] 1988-05
[3] 논문 Type Architectures, Shared Memory, and The Corollary of Modest Potential http://www.cs.washin[...] 1986-06
[4] 논문 Amdahl's Law in the Multicore Era http://www.cs.wisc.e[...] 2008-07
[5] 논문 Extending Amdahl's Law for Energy-Efficient Computing in the Many-Core Era 2008-12
[6] 논문 Speedup and Power Scaling Models for Heterogeneous Many-Core Systems https://eprint.ncl.a[...] 2018-07-01
[7] 논문 Amdahl's law in the context of heterogeneous many-core systems – a survey 2020-07
[8] 간행물 Reevaluating Amdahl's Law http://citeseerx.ist[...] 1988



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com