【问题标题】:Parallel Speedup and Efficiency并行加速和效率
【发布时间】:2015-04-30 14:45:31
【问题描述】:

问一个简单的问题。

并行加速和效率有什么区别。

谢谢

【问题讨论】:

  • 嗯什么?您能否澄清您的问题,很难说出您真正要问的是什么。
  • 已更新,暂时保持简单。
  • 问一个简单的问题:你认为我们看不到什么是家庭作业,什么不是?
  • 这不是功课,我想好好了解一下。

标签: multithreading performance parallel-processing


【解决方案1】:

如果你有两个工人,在一个幼稚的世界里,你应该能够在一半的时间内完成一项工作。这是 2 倍 加速。如果这两个工作人员根本不交互并且独立工作,那么理论上可以实现 2 倍的加速。这类问题称为embarassingly-parallel,并不常见。 在这种情况下,两个工人都可以像原来的工人一样快速地继续工作,即效率为 100%。

Amdahl's Law: 尽管如此,在现实世界的计算中,总是存在一些共享资源,因此两个工作人员之间存在一些争用。这意味着两个工人的运行速度可能会比原来的单个工人慢一些。

  • 效率现在成为衡量每个工人速度下降的指标。假设他们以原来单工速度的 0.9 倍运行,现在效率是 90%

  • 效率下降也意味着在最初的时间内,任一工人只完成了 90% 的工作。所以实际加速从 2 倍下降到 1.8 倍

【讨论】:

  • 那么当效率下降时,这是否意味着每个工人的工作量减少了?
  • 假设我们希望通过将工作拆分到多个核心上来实现多线程的良好加速,效率越低意味着效率越高,因为每个核心不必做太多工作?
  • 当效率下降时,每个工人都在做自己的工作变慢。与效率无关,但他们的总工作量也较少,因为工作现在由几个工人分开。
【解决方案2】:

只是在这里添加技术定义。 T_1 是您的应用程序在 1 个处理器上完成所需的时间(连续时间),而 T_p 是您的应用程序在 p上执行所需的时间> 核心。然后,加速比 S 定义为

S = T_1 / T_p

加速是衡量您在使用 p 内核时获得的加速度, 对应的效率E定义为

E = T_1 / (p T_p)

效率衡量您并行利用 p 内核的程度。 p 内核的最大理论加速是 p,但只有在令人尴尬的并行应用程序(没有通信和其他开销)时才能达到这个限制。相应地,最大效率为 1(或 100%)。在实践中,一个常见的经验法则是,应用的目标应该是至少达到 0.7(或 70%)的效率。

【讨论】:

    【解决方案3】:

    一位女士可以在 9 个月内生孩子。

    如果你把 9 位女士放在案子上,那么 1 个月你就不能生孩子。这是零加速和 11% 的效率。

    如果你把 9 位女士放在箱子上,你可以在 9 个月内生下 9 个婴儿。这是 9 倍的加速和 100% 的效率。

    【讨论】:

      猜你喜欢
      • 2012-10-23
      • 2013-05-19
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      相关资源
      最近更新 更多