系统加速衡量标准
-
Amdahl定律
我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。
若系统执行某应用程序需要时间为 T o l d T_{old} Told。假设系统某部分所需执行时间与该时间的比例为 α \alpha α,而该部分性能提升比例为 k k k。
即该部分初始所需时间为 α T o l d \alpha T_{old} αTold,现在需要的时间为 α T o l d / k {\alpha T_{old}}/{k} αTold/k。因此总的实行时间为
T n e w = ( 1 − α ) T o l d + ( α T o l d ) / k = T o l d ( 1 − α ) + α / k (1.1) T_{new} = (1-\alpha)T_{old} + (\alpha T_{old})/k = T_{old}(1-\alpha) + \alpha/k \tag{1.1} Tnew=(1−α)Told+(αTold)/k=Told(1−α)+α/k(1.1)
由此可以计算加速比 S = T o l d / T n e w S=T_{old}/T_{new} S=Told/Tnew为
S = 1 ( 1 − α ) + α / k (1.2) S=\frac{1}{(1-\alpha)+\alpha/k} \tag{1.2} S=(1−α)+α/k1(1.2)
Amdahl定律有一个有趣的特殊情况时考虑到
k
k
k趋向于
∞
\infty
∞时。意味着可以将系统的某一部分加速到时间忽略不计,我们得到
S
∞
=
1
(
1
−
α
)
(1.3)
S_{\infty}=\frac{1}{(1-\alpha)} \tag{1.3}
S∞=(1−α)1(1.3)
举个例子,如果60%的系统性能能投加速到不消耗时间的程度,净加速度仍然只有2.5X