第1章 计算机系统漫游
Amdahl定律
主要思想:当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。若系统执行某应用程序需要时间为T(old)。假设系统某部分所需执行时间与该时间的比例为α,而该部分性能提升比例为k。即该部分初始所需时间为αT(old),现在所需时间为αT(old)/k。因此,总的执行时间为:
T(new) = (1-α)T(old)+αT(old)/k = Told[(1-α)+α/k]
由此,可以计算加速比S=T(old)/T(new)为
S = 1/((1-a)+a/k))
Amdahl定律一个有趣的特殊情况是考虑k趋向于∞的效果。这就意味着,我们可以取系统的某一部分将其加速到一个点,在这个点上,这部分花费的时间可以忽略不计。于是我们得到
S∞ = 1/(1-α)
举个例子,如果60%的系统能够加速到不花时间的程度,我们获得的净加速比将仍只有1/0.4 = 2.5X。
Amdahl定律描述了改善任何过程的一般原则。除了可以用在加速计算机系统方面之外,它还可以用来公司试图降低刀片制造成本,或学生想要提高自己的绩点平均值等方面。也许它在计算机世界里是最有意义的,在这里我们常常把性能提升2倍或更高的比例因子。这么高的比例因子只有通过优化系统的大部分组件才能获得。
练习题 1.1
题目:见原书 page 16
A. 答:α = 1500/2500 = 0.6
k = 150/100 = 1.5
S = 1/(0.4+0.4)= 1.25
B. 答: 1/(0.4+0.6/k) = 1.67
k = 3.03
v = 3.03 * 100 = 303
练习题 1.2
答: α = 0.8
S = 1/(0.2+0.8/k) = 2
k = 2.67