【问题标题】:Working through an example of Amdahl's Law with respect to percentage speedup通过关于百分比加速的阿姆达尔定律示例
【发布时间】:2013-09-08 17:05:00
【问题描述】:

我正在阅读“计算机体系结构:定量方法第 5 版”,并试图掌握阿姆达尔定律,当涉及到加速系统的某些部分时,即将系统的某个百分比加速某个百分比。当您谈论通过某个因素(例如)加速系统时,很容易理解。一个快 10 倍的系统。

举个具体的例子:

您有一个系统,其中某个子系统占执行时间的 70%,您希望开发一个加速器,将这个子系统的延迟降低 50%。

从书中,阿姆达尔定律被列为:

SpeedupOverall = 1/((1-FractionEnhanced)+(FractionEnhanced/SpeedupEnhanced))

我从分数增强(“原始计算机中可以转换为利用增强的计算时间的分数”)的解释中得出:FractionEnhanced = 70% 或 0.7。

我的问题是如何反映加速。书中将其列为“增强执行模式所获得的改进,即如果将增强模式用于整个程序,任务将运行多快”。书上说这将是原始模式超过改进时间的时间;在这种情况下为 70/50,或 1.4。然而,我的困惑在于这个website,通过检查java小程序代码,似乎加速增强将是1 +加速百分比,或1.5。也许我也想多了,但我也在想它怎么可能是 .7/(0.7 - 0.7*0.5) 或 2(因为,就实际而言,70%*50% 是实际的延迟减少子系统,对吧?)。

通过数学运算,我们得到以下答案:

  1. 对于 SpeedupEnhanced = 70/50 = 1.4:SpeedupOverall = 1/((1-0.7)+ .7/1.4) = 1.25

  2. 对于 SpeedupEnhanced = 1+0.5 = 1.5:SpeedupOverall = 1/((1-0.7)+ .7/1.5) = 1.3043

  3. 对于 SpeedupEnhanced = 0.7/(0.7-0.7*0.5) = 2:SpeedupOverall = 1/((1-0.7)+.7/2) = 1.54

这里哪一个是正确的加速?第二个对我来说似乎很有意义,但是这本书似乎暗示第一个是正确的。任何关于如何掌握这种加速的参考或解释的帮助将不胜感激。

【问题讨论】:

    标签: performance math computer-science computer-architecture parallelism-amdahl


    【解决方案1】:

    第三个答案(1.54 倍总加速比)是正确的,因为“加速比增强”是一个无量纲值,仅表示增强的部分执行时间变化(以“x”为单位)。请注意,在您的情况下,加速增强仅等于 70/(70*0.5)。

    总体而言,阿姆达尔定律和古斯塔夫森定律的解释存在很多可能的混淆。令人惊讶的是,好的入门阅读是关于 amdahl 法的维基百科页面。它会特别将您重新映射到更传统的解释,强调并行计算和处理器数量,而不是“增强的加速”概念。可以在 Gustafson 教授的参考页面上找到更深入和详尽的阅读,他“发明”了替代“乐观法则”。看完所有资料,你会发现“加速”这个概念更加有趣和明确。

    【讨论】:

    • 感谢您的帮助。我对第三个选项的想法是正确的,还是我选择 50% 太方便了?比如说,我选择了 55%,SpeedupEnhanced 会等于 0.7/(0.7-0.7*0.55) 吗?
    • 如果 55% (Y%) 表征子系统的改进(例如子系统的执行时间减少 55%),则 SpeedupEnhanced = 0.7/(0.7*0.55)= 1/0.55。所以 SpeedupEnhanced 简单地等于 1/Y%,其中 (100-Y%) 表示改进后的子系统(执行时间)。 1/Y 似乎是一个过于简单的公式,可能会让您感到困惑。混淆的根源在于您书中的法律解释试图概括事物,其起源(并行执行时间)更加直观和自然。但是,由于 Gustafson 与 Amdahl 的问题更多,过度概括也不错
    • 好的,我想我现在明白了。你有什么我可以进一步阅读的参考资料吗?
    • 我只是很困惑,为什么在您将占 X% 的子系统加速 Y% 的情况下,SpeedupEnhanced 将是 1/Y% 而不是 1/(1-Y) %。使用 70.55% 的例子,这对我来说是有意义的,因为这将相当于 70%/31.5% (1/(1-Y%)),这将是加速,而不是 70%/38.5% (1/ Y%) 还是我的想法都在这里糊涂了? 1/Y% 似乎适用于加速整个系统而不仅仅是 X% 子系统的情况......
    • 嗯,这取决于您如何定义 Y。我定义/解释了它,因此 Y 是一个 Delta(即您改进了原始时间的多少)。您可以以相反的方式定义它(Y 是改进时间与原始时间的比率),它将最终出现在您的公式中;但在最后一种情况下,我不明白你为什么使用连词«BY»(我不是母语人士:))
    猜你喜欢
    • 1970-01-01
    • 2021-03-18
    • 2013-04-25
    • 2017-02-10
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多