理解阿姆达尔定律

时间:2016-10-02 00:37:08

标签: parallel-processing cpu-architecture

我想了解以下幻灯片 enter image description here

这个定义对我来说有点不清楚。像维基百科这样的消息来源说,Amdahl测量的是固定工作负载执行任务的延迟加速,可以预期资源得到改善的系统。对我而言,加速基本上是一项任务比其他任务更快的速度。在这种情况下的加速以不同的方式使用。您能否以更简单的方式澄清Amdahl法律的衡量标准以及实际加速的速度是什么?

2 个答案:

答案 0 :(得分:1)

这里加速的定义是:

Speedup = Baseline Running Time / New Running Time

这意味着如果运行时间是BRT且可并行化部分是P,那么:

BRT = (1 - P) * BRT + P * BRT

现在,如果在运行时间的P部分获得S的加速,则新的改进运行时间(IRT)为:

IRT = (1 - P) * BRT + P * (BRT / S)
    = (1 - P) * BRT + (P / S) * BRT
    = ((1 - P) + (P / S)) * BRT

因此:

BRT / IRT = 1 / ((1 - P) + (P / S))

这是整体加速。这是阿姆达尔定律。

  

对我而言,加速基本上是一项任务比其他任务更快的速度。

是的,可以用不同的方式定义加速。这可能有点令人困惑。

答案 1 :(得分:0)

阿姆达尔定律测量的是理论上的最大速度,这几乎是不可能实现的,一旦您知道不同部分的含义,该公式就很容易理解了, Speed up based on amount of code which can be parallelized.

好的,公式为Speedup = 1/ 1-f + f/p

  • 1表示整个代码,
  • 1-f表示串行代码的数量(不能并行化),
  • f表示可以并行化的代码,
  • p表示处理器数量,

因此,如果我们说有10个处理器,并且我们有40%的代码可以并行化。
公式是加速比= 1 / 1-40%(0.4)+ 40%(0.4)/ 10

不是专业人士,您可能需要检查一下,但是如果我没记错的话,这应该是这样的:)