古斯塔夫森定律试图证明什么?

What is Gustafson's law trying to argue?

Gustafson 定律与 Amdahl 定律相反,Amdahl 定律声称大多数并行处理应用程序在增加对并行处理的访问时实际上会增加工作量。因此,阿姆达尔定律假定恒定的工作负载来衡量加速比是确定并行处理收益的糟糕方法。

但是,我对 Gustafson 到底想争论什么感到困惑。

例如,假设我采用古斯塔夫森定律并将其应用于一个顺序处理器和两个并行处理器:

我在并行处理器 #1 上为 运行 生成工作负载。在并行处理器上执行需要1秒,在顺序处理器上执行需要10秒。

我生成了更大的工作负载,运行 它在并行处理器 #2 上。在并行处理器上执行需要1秒,在顺序处理器上执行需要50秒。

对于每个工作负载,相对于顺序处理器都有一个加速。然而,这似乎并没有违反阿姆达尔定律,因为每个工作负载仍然有一些加速上限。这一切所做的只是改变工作负载,以便可能减少代码的“仅串行”部分。根据 Amdahl 定律,减少 serial only 部分将增加加速限制。

所以我很困惑,提倡增加工作量并保持恒定执行时间的古斯塔夫森定律似乎没有添加任何新信息。

古斯塔夫森到底在争论什么?具体来说,“scaled-speedup”到底是什么意思?

Gustafson's law is a counter to Amdahl's law claiming that most parallel processing applications actually increase the workload when having increased access to parallel processing. Thus, Amdahl's law which assumes constant workload to measure speedup is a poor method for determining benefits from parallel processing.

没有

首先,这两个法律没有主张任何东西。它们 显示 应用程序根据特定配置可以获得的理论(最大)加速。这两个是模拟并行算法行为的基本数学公式。他们的目标是了解并行计算的一些局限性(Amdahl 定律)以及开发人员可以采取哪些措施来克服这些局限性(Gustafson 定律)。

Amdahl 定律是一个数学公式,描述了应用程序在 可变时间给定工作负载(但计算量是固定的)下的理论加速处理单元。工作负载包含一个串行执行部分和一个并行执行部分。它表明加速受限于程序的串行部分。这对于并行应用程序的开发人员来说不是很好,因为这意味着他们的应用程序的可伸缩性对于一些相当顺序的工作负载来说将是非常糟糕的假设工作负载是固定的

古斯塔夫森定律打破了这一假设并添加了一个新的假设来以不同的方式看待问题。实际上,该数学公式描述了具有由多个处理单元计算的固定时间工作负载(但计算量是可变的)应用程序的理论加速。它表明,只要应用程序开发人员可以向给定的工作负载添加更多并行工作,加速就会很好。

I generate a workload to run on parallel processor #1. It takes 1 second to execute on the parallel processor and takes 10 seconds to execute on the sequential processor. I generate a bigger workload and run it on parallel processor #2. It takes 1 second to execute on the parallel processor and takes 50 seconds to execute on the sequential processor.

与具有这两种模型的一个处理单元相比,具有 2 个处理单元的并行程序的速度不能超过 2 倍。由于一些混杂因素(通常是由于缓存效应),这在实践中是可能的,但这种影响并非仅来自处理单元。 “两个并行处理器”是什么意思?您的示例中缺少处理单元的数量(除非您想从提供的信息中找到它)。

So I'm confused, Gustafson's law which advocates for increasing the workload and maintain constant execution time doesn't seem to add any new information.

这两个定律就像是同一个可扩展性问题的两个观点。但是,他们做出了不同的假设:固定工作量和可变工作时间 VS 可变工作量和固定工作时间。

如果您熟悉 strong/weak 缩放的概念,请注意阿姆达尔定律对于 强缩放 就像古斯塔夫森定律对于 弱缩放.