Amdahl 定律

版权声明:wangji https://blog.csdn.net/JWoswin/article/details/89047780

Gene Amdahl,计算机领域的早期先锋之一,对提升系统某一部分性能所带来的效果做出来简单却有见地的观察。这个观察被称为 Amdahl 定律(Amdahl’s law)。该定律的主要思想是,当我们对系统的某个部分加速时,起对系统整体性能的影响取决于该部分的重要性和加速程度。
若系统执行某应用持续需要的时间为 T o l d T_{old}
假设系统某部分所需执行时间与该时间的比例为 α \alpha ,而该部分性能提升比例为 k k
即该部分该部分初始所需时间为 α T o l d \alpha T_{old} ,现在所需时间为 α T o l d / k \alpha T_{old}/k
因此,总的执行时间应为
T n e w = ( 1 α ) T o l d + α T o l d / k = T o l d [ ( 1 α ) + α / k ] T_{new} = (1- \alpha )T_{old} + \alpha T_{old}/k = T_{old}[(1-\alpha ) + \alpha /k]

由此,可以计算加速比 S = T o l d / T n e w S = T_{old}/T_{new} 为:
S = 1 ( 1 α ) + α / k S = \frac{1}{(1-\alpha ) + \alpha /k}

举个例子:
考虑这样一种情况,系统某个部分初始耗时比例为 60 % ( α = 0.6 ) 60\% (\alpha = 0.6) ,其加速比例因子为3( k = 3 k=3 )。则我们可以获得的加速比为 1 / [ 0.4 + 0.6 / 3 ] = 1.67 1/[0.4 + 0.6/3] = 1.67 倍。虽然我们对系统的一个主要部分做出来重大改进,但是获得即系统加速比却明显小于这部分的加速比。

这就是 Amdahl 定律的主要观点:要想显著加速整个系统,必须提升全系统中相当大的部分的速度。

猜你喜欢

转载自blog.csdn.net/JWoswin/article/details/89047780