Gustafson 定律与 Amdahl 定律相反,该定律声称大多数并行处理应用程序实际上在增加对并行处理的访问时会增加工作量。因此,假定恒定工作负载来衡量加速比的阿姆达尔定律是确定并行处理收益的较差方法。
然而,我对古斯塔夫森到底想争论什么感到困惑。
例如,假设我采用古斯塔夫森定律并将其应用于顺序处理器和两个并行处理器:
我生成了一个在并行处理器 #1 上运行的工作负载。在并行处理器上执行需要 1 秒,在顺序处理器上执行需要 10 秒。
我生成了更大的工作负载并在并行处理器 #2 上运行它。在并行处理器上执行需要 1 秒,在顺序处理器上执行需要 50 秒。
对于每个工作负载,相对于顺序处理器都有一个加速。但是,这似乎并没有违反阿姆达尔定律,因为每个工作负载仍然存在一些加速上限。所有这一切都是在改变工作量,以便可能减少代码的“仅串行”部分。根据阿姆达尔定律,减少仅串行部分将增加加速限制。
所以我很困惑,提倡增加工作量并保持恒定执行时间的古斯塔夫森定律似乎并没有添加任何新信息。
古斯塔夫森到底在争论什么?具体来说,“规模化加速”甚至意味着什么?