Amdahl's law
- 对系统某部分加速时,其对系统整体影响取决于该部分重要性和加速程度。
- 要想显著加速整个系统,必须提升全系统中相当大的部分的速度。
如果有一个应用程序完成一项任务需要时间为Told,该应用程序某部分执行时间与总时间比例为α,
若将该部分性能提升k倍,总的执行时间为:
Tnew = (αTold / k) + (Told - αTold)
= Told [ (1 - α) + α/k ]
加速比 S = Told / Tnew
特殊情况
- 当k趋向∞时
k无穷大时,也就是说性能提升到极致,这部分运行所花的时间可以忽略不计。
当一个系统的60%加速到不花时间,获得的加速比只有S = 1 / 0.4 = 2.5X
一个系统要想提升其性能,需要改进该系统的大部分,如果只提升一个部分的性能,就算提升1000倍,如果这个部分不重要,既时间比例a很小,对整个系统性能的提升将毫无用处。