Gene Amdahl, 计算领域的早期先锋之一,对提升系统某一部分性能所带来的效果做出了简单却有见地的观察。这个观察被称为 Amdahl 定律 (Amdahl's law) 。该定律的主要思想是,当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度。若系统执行某应用程序需要时间为 。假设系统某部分所需执行时间与该时间的比例为 a,而该部分性能提升比例为 k。即该部分初始所需时间为 ,现在所需时间为 。因此,总的执行时间应为
由此,可以计算加速比 为
举个例子,考虑这样一种情况,系统的某个部分初始耗时比例为 60%(a=O. 6),其加速比例因子为 3(k=3) 。则我们可以获得的加速比为 1/[0. 4+0. 6/3]=1. 67 倍。虽然我们对系统的一个主要部分做出了重大改进,但是获得的系统加速比却明显小于这部分的加速比。这就是 Amdahl 定律的主要观点 要想显著加速整个系统,必须提升全系统中相当大的部分的速度。
Amdahl 定律一个有趣的特殊情况是考虑 趋向于 时的效果。这就意味着,我们可以取系统的某一部分将其加速到一个点,在这个点上,这部分花费的时间可以忽略不计。千是我们得到
举个例子,如果 60% 的系统能够加速到不花时间的程度,我们获得的净加速比将仍只有 1 / 0.4=2.5X。
Amdahl 定律描述了改善任何过程的一般原则。除了可以用在加速计算机系统方面之外,它还可以用在公司试图降低刀片制造成本,或学生想要提高自己的绩点平均值等方面。也许它在计算机世界里是最有意义的,在这里我们常常把性能提升 2 倍或更高的比例因子。这么高的比例因子只有通过优化系统的大部分组件才能获得。
网友评论