我知道Amdahl定律和并行程序的最大加速。但我无法正确研究古斯塔夫森定律。什么是Gustafson定律,Amdahl和Gustafson定律之间有什么区别?
答案 0 :(得分:20)
Amdahl定律
假设您有一个顺序代码,并且其计算的一小部分f
被并行化并在并行工作的N
处理单元上运行,而剩余的分数1-f
无法改进,即,它不能并行化。 Amdahl定律指出并行化实现的加速是
Gustafson定律
Amdahl的观点主要集中在固定计算问题的大小上,因为它处理的代码占用了固定数量的连续计算时间。 Gustafson的反对意见是大规模并行机器允许以前不可行的计算,因为它们能够在固定的时间内对非常大的数据集进行计算。换句话说,并行平台不仅可以加速代码的执行,还可以处理更大的问题。
假设您有一个应用程序需要在ts
处理单元上执行时间N
。在该计算时间内,必须按顺序运行分数(1-f)
。因此,此应用程序将在时间t
等于
如果我们增加问题大小,我们可以增加处理单元的数量,以保持代码并行执行的时间部分等于f·ts
。在这种情况下,顺序执行时间随N
增加,现在成为问题大小的度量。然后加速成为
效率将是
因此效率往往会增加N
。
这些相当乐观的加速和效率评估的缺陷与以下事实有关:随着问题规模的增加,通信成本将增加,但通信成本的增加不是由Gustafson定律解释的。
<强>参考强>
-G。 Barlas,多核和GPU编程:综合方法,Morgan Kaufmann
M.D。 Hill,M.R。Marty,Amdahl在多核时代的定律,计算机,第一卷。 41,n。 7,pp.33-38,2008年7月。
<强> GPGPU 强>
关于适用于通用图形处理单元的Amdahl定律,有一些有趣的讨论,见
Amdahl's law and GPU Amdahl's Law for GPU Is Amdahl's law accepted for GPUs too?
答案 1 :(得分:2)
我们从不同的角度看待同样的问题。 Amdahl的法律规定,如果你有100多个CPU,你能解决同样的问题多快多少?
Gustafson的法律规定,如果一台拥有100个CPU的并行计算机可以在30分钟内解决这个问题,那么只有一个这样的CPU的计算机需要多长时间才能解决同样的问题?
古斯塔夫森的法律更好地反映了情况。例如,我们不能使用20年前的PC来播放今天的大部分电视游戏,因为它们太慢了。
答案 2 :(得分:1)
阿姆达尔定律
通常,如果不可能将一小部分f划分为多个平行部分,则整个事物的并行速度只能提高 1 / f 倍。那就是阿姆达尔定律。
古斯塔夫森定律
通常,对于p个参与者和不可比的分数f,整个过程可以快 p +(1-p)f 倍。那是古斯塔夫森定律