Loading

Amdahl 定律


返回 我的技术栈(Technology Stack)



Amdahl 定律

Gene Amdahl, 计算领域的早期先锋之一,对提升系统某一部分性能所带来的效果做出了简单却有见地的观察。这个观察被称为 Amdahl 定律 (Amdahl's law) 。

该定律的主要思想是:
当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。
若系统执行某应用程序需要时间为 \(T_{old}\)
假设系统某部分所需执行时间与该时间的比例为 a, 而该部分性能提升比例为 K 。
即该部分初始所需时间为 \(\alpha T_{old}\) , 现在所需时间为 \((\alpha T_{old})/K\)
因此,总的执行时间应为

\[T_{new} = (1-\alpha )T_{old}+(\alpha T_{old})/K=T_{old}[(1-\alpha)+\alpha /k] \]

由此,可以计算加速比 \(S = T_{old}/T_{new}\)

\[S = \frac{1}{(1-\alpha)+\alpha /k} \]

举个例子,考虑这样一种情况,系统的某个部分初始耗时比例为 60% (\(\alpha\)=O. 6), 其加速比例因子为 3(k=3) 。
则我们可以获得的加速比为 1/[0. 4+0. 6/3]=1. 67 倍。
虽然我们对系统的一个主要部分做出了重大改进,但是获得的系统加速比却明显小千这部分的加速比。
这就是 Amdahl 定律的主要观点——要想显著加速整个系统,必须提升全系统中相当大的部分的速度。

案例1

假设你是个卡车司机,要将土豆从爱达荷州的 Boise 运送到明尼苏达州的 Minneapolis, 全程 2500 公里。在限速范围内,你估计平均速度为 100 公里/小时,整个行程需要 25 个小时。
A. 你听到新闻说蒙大拿州刚刚取消了限速,这使得行程中有 1500 公里卡车的速度可以为 150 公里/小时 。 那么这对整个行程的加速比是多少?
B. 你可以在 www. fasttrucks. com 网站上为自己的卡车买个新的涡轮增压器。网站现货供应各种型号,不过速度越快,价格越高。如果想要让整个行程的加速比为1. 67 X, 那么你必须以多快的速度通过蒙大拿州?

解答:
该问题说明 Amdahl 定律不仅仅适用千计算机系统。
A. 根据公式

\[S = \frac{1}{(1-\alpha)+\alpha /k} \]

\(\alpha\)=0.6, k=150/100 = l.5 。更直接地说,在蒙大拿行驶的 1500 公里需要 10 个小时,而
其他行程也需要 10 个小时。则加速比为 25/(10+10)=1. 25X 。
B. 根据公式

\[S = \frac{1}{(1-\alpha)+\alpha /k} \]

\(\alpha\)=O. 6, 要求 S=l. 67, 则可算出 k 。更直接地说,要使行程加速度达到 1. 67 X, 我们必须把全程时间减少到 15 个小时。蒙大拿以外仍要求为 10 小时,因此,通过蒙大拿的时间就为 5 个小时。这就要求行驶速度为 300 公里/小时,对卡车来说这个速度太快了!

案例2

公司的市场部向你的客户承诺,下一个版本的软件性能将改进 2X 。这项任务被分配给你。你巳经确认只有 80% 的系统能够被改进,那么,这部分需要被改进多少(即 k 取何值)才能达到整体性能目标?

解答:
已知 5=2, \(\alpha\)=O. 8, 则计算 k:

\[2 = \frac{1}{(1-0.8)+0.8/k} \]

\[k = 2.67 \]

posted @ 2021-07-08 22:12  言非  阅读(873)  评论(0)    收藏  举报