amdahl의 법칙 예제

그것은 병렬주의로 인한 속도 향상은 암달의 법에 의해 주어진 다음과 같은 방법으로 공식화 될 수 있다는 암달의 법칙에서 다음과 같습니다 : 암달의 법칙은 종종 암달의 법을 적용하는 특별한 경우만 법률을 보여줍니다 반면, 반환을 감소의 법칙과 수축된다 수익률이 감소할 수 있습니다. 개선해야 할 것을 최적으로 선택한다면(달성된 속도 향상 측면에서) 개선해야 할 것이 개선됨에 따라 단조롭게 개선되는 것을 볼 수 있습니다. 그러나 최적이 아닌 구성 요소를 개선하고 보다 최적의 구성 요소를 개선하기 위해 이동한 후 비최적 구성 요소를 선택하면 수익률이 증가하는 것을 볼 수 있습니다. 일부 개선이 더 어렵거나 다른 것보다 더 큰 개발 시간이 필요하다는 점을 감안할 때 이러한 의미에서 “비최적”인 순서로 시스템을 개선하는 것이 합리적이라는 점에 유의하십시오. Amdahl의 법칙은 시스템의 특정 부분을 개선하여 가능한 최대의 개선을 찾는 데 사용되는 공식입니다. 병렬 컴퓨팅에서 Amdahl의 법칙은 주로 여러 프로세서를 사용하는 프로그램 처리에 대한 이론적 최대 속도를 예측하는 데 사용됩니다. 그것은 진 Amdahl의 이름을 따서 명명, IBM과 암달 공사에서 컴퓨터 건축가.이 용어는 또한 암달의 인수로 알려져있다. 컴퓨터 아키텍처에서 Amdahl의 법칙(또는 Amdahl의 주장[1])은 리소스가 개선된 시스템에서 예상할 수 있는 고정 워크로드에서 작업 실행의 지연 시간에 대한 이론적 속도를 제공하는 수식입니다. 그것은 컴퓨터 과학자 진 Amdahl의 이름을 따서 명명하고, 1967 년에 AFIPS 봄 공동 컴퓨터 컨퍼런스에서 발표되었다.

Amdahl의 법칙은 고정 워크로드 W {displaystyle W}에서 전체 작업의 실행 대기 시간에 대한 이론적 속도를 제공합니다. 이기종 컴퓨팅 기술이 필요합니다. [4] 예를 들어, CPU-GPU 이기종 프로세서는 CPU 전용 또는 GPU 전용 프로세서보다 더 높은 성능과 에너지 효율을 제공할 수 있습니다. [5] 예를 들어, 실행 시간의 백분율이 p1 = 0.11, p2 = 0.18, p3 = 0.23 및 p4 = 0.48인 4개의 연속 부분으로 분할되는 직렬 작업이 각각 부여된다고 가정합니다. 그런 다음 1부가 빨라지지 않도록 s1 = 1, 2부분은 5배 빨라지므로 s2 = 5, 3부분은 20배 빨라지므로 s3 = 20, 4부는 1.6배 빨라지된다고 합니다. , 그래서 s4 = 1.6. Amdahl의 법칙을 사용하여, 전체 속도 향상은 실행 시간의 30 %가 속도 향상의 대상이 될 수 있다면, p는 0.3이 될 것이다; 개선이 영향을받는 부분을 두 배 빠른 속도로 만들면 s는 2가됩니다. Amdahl의 법칙에 따르면 개선 적용의 전반적인 속도 향상은 다음과 같은 것입니다: Amdahl의 법칙은 문제 크기가 고정된 경우에만 적용됩니다.

실제로 더 많은 컴퓨팅 리소스를 사용할 수 있게 되면 더 큰 문제(더 큰 데이터 집합)에 익숙해지는 경향이 있으며 병렬 처리 가능한 부분에서 소요되는 시간은 본질적으로 직렬 작업보다 훨씬 빠르게 증가하는 경우가 많습니다. 이 경우 Gustafson의 법칙은 병렬 성능에 대한 비관적이고 보다 현실적인 평가를 제공합니다. [2] Amdahl의 법칙은 컴퓨터에 프로세서를 더 추가하여 어떤 종류의 반환을 얻는지 고려할 때 사용 가능한 모든 프로세서를 용량에 사용하는 고정 크기 계산을 실행하는 경우 수익을 줄이는 법칙을 나타냅니다. 시스템에 추가된 각 새 프로세서는 이전 프로세서보다 사용 가능한 전력을 줄입니다. 프로세서 수를 두 배로 늘릴 때마다 총 처리량이 1/(1 – p)의 한계를 향해 향하기 때문에 속도 향상 비율이 감소합니다. Amdahl의 법칙은 종종 여러 프로세서를 사용할 때 이론적 속도 향상을 예측하기 위해 병렬 컴퓨팅에 사용됩니다. 예를 들어, 프로그램이 단일 프로세서 코어를 사용하여 20시간이 필요하고 실행하는 데 1시간이 걸리는 프로그램의 특정 부분을 병렬화할 수 없는 반면, 나머지 19시간(p = 0.95)의 실행 시간은 얼마나 많은 지에 관계없이 병렬화될 수 있습니다. 프로세서는 이 프로그램의 병렬화된 실행에 전념하고 있으며, 최소 실행 시간은 중요한 1시간보다 적을 수 없습니다.