【问题标题】:Negative speed up in Amdahl's law?阿姆达尔定律中的负加速?
【发布时间】:2021-03-18 13:32:09
【问题描述】:

阿姆达尔定律指出,整个系统的加速是

an_old_time / a_new_time

其中a_new_time 可以表示为( 1 - f ) + f / s’,其中f 是通过一些修改增强的系统部分,s’ 是系统部分增强的量。但是,在求解s’ 的这个方程后,似乎有很多情况s’ 是负数,这在物理上没有任何意义。

假设s = 2(整个系统的速度提高了100%)和f = 0.1(系统的10%受到了一些速度提升s’的影响),我们求解s’通过设置 an_old time = 1s’ = f / ( f + 1 / s - 1 ).

插入fs的值,我们发现:
s’ = 0.1 / ( 0.1 + 0.5 - 1 ) = 0.1 / -0.4
这意味着s’的值为负。

这怎么可能,这有什么物理意义?另外,在回答此类问题时,如何避免 s’ 的负值?

【问题讨论】:

  • S = 2 和 F = 0.1 是不可能的,因为随着 S` 接近无穷大,S 接近 1 / (1 - F),在这种情况下为 1.111...,所以 S 不能更大比那么多。

标签: parallel-processing computer-science cpu-architecture computation-theory parallelism-amdahl


【解决方案1】:

Amdahl 定律,也称为 Amdahl 论证,用于在仅改进部分过程时找到整个过程的最大预期改进。


               1                 | where S is the maximum theoretical Speedup achievable
S =  __________________________; |       s is the pure-[SERIAL]-section fraction
                ( 1 - s )        | ( 1 - s )  a True-[PARALLEL]-section fraction
     s    +     _________        |       N is the number of processes doing the [PAR.]-part
                    N            |

由于代数,s + ( 1 - s ) == 1, s 是来自< 0.0 .. 1.0 > 的任何东西,这里没有机会得到负值。


Amdahl 论点的完整背景
和当代批评,
添加所有主要附加开销因素&
更好地处理工作原子性


它经常应用于 领域,用于预测使用多个处理器可实现的理论最大加速比。该法律以 Gene M. AMDAHL 博士(IBM 公司)命名,并于 1967 年在 AFIPS 春季联合计算机会议上提出。

他的论文扩展了之前的工作,Amdahl 本人将其引用为“...对当前发布的相关计算机功能的最彻底的分析之一 ...”,于 1966 年 9 月由教授Kenneth E. KNIGHT,斯坦福工商管理学院。 论文对流程改进保持了总体看法。


图1:

                                                   a SPEEDUP
                                                     BETWEEN
                                                   a <PROCESS_B>-[SEQ.B]-[PAR.B:N]
 [START]                                             and
    [T0]                                  [T0+tsA] a <PROCESS_A>-[SEQ.A]-ONLY
       |                                         |
       v                                         v
       |                                         |
PROCESS:<SEQ.A>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>|
       |                                         |
       +-----------------------------------------+
       |                                         |
    [T0]         [T0+tsB]             [T0+tsB+tpB] 
       |                |                        |   
       v                v                        v
       |________________|R.0: ____.____.____.____|
       |                |R.1? ____.____|         :
       |                |R.2? ____|    :         :
       |                |R.3? ____|    :         :
       |                |R.4?     :    :         :
       |                |R.5?     :    :         :
       |                |R.6?     :    :         :
       |                |R.7?     :    :         :
       |                |         :    :         :
PROCESS:<SEQ.B>>>>>>>>>>|<PAR.B:4>:    :         :
       |                |<PAR.B:2>:>>>>:         :
                        |<PAR.B:1>:>>>>:>>>>>>>>>: ~~ <PAR.B:1> == [SEQ]
                                  :    :         :
                                  :    :         [FINISH] using 1 PAR-RESOURCE
                                  :    [FINISH]        if using 2 PAR-RESOURCEs
                                  [FINISH]             if using 4 PAR-RESOURCEs

(执行时间从左到右,从[T0] .. 到[T0 + ts1 + tp1]
这里选择[SEQ][PAR] 部分的草图顺序只是为了说明目的,可以原则上相反,因为流程部分的持续时间排序原则上是可交换的)


{ 程序 | 的加速进程 },来自于在并行计算中使用多个处理器,被推导为(可能会让观众感到惊讶)主要受限于所消耗的时间的一小部分对于处理的未改进部分,通常是程序处理的顺序部分,仍然以纯[SERIAL] 进程调度方式执行(可能是由于本身没有并行化,或者非本质上是可并行的)。

例如,如果一个程序需要 20 小时使用单个处理器内核,而该程序需要 1 小时才能执行的特定部分无法并行化(已在纯-[SERIAL] 中处理过) strong> 进程调度方式),而剩余 19 小时(95%)的执行时间可以并行化(使用真正的-[PARALLEL]不是“只是"-[CONCURRENT]) 进程调度),那么不管有多少处理器专门用于并行化进程执行其余的进程,可实现的最短执行时间不可能少于(第一个)关键的一小时程序。

因此,Speedup 可实现的主要限制为 20 倍,即使对于过程。

另见:

  CRI UNICOS has a useful command amlaw(1) which does simple
  number crunching on Amdahl's Law.
              ------------

在 CRI 系统类型上:man amlaw

                       1         1
     S =  lim    ------------ = ---
          P->oo        1-s       s
                  s +  ---
                        P

 S = speedup which can be achieved with P processors
 s (small sigma) = proportion of a calculation which is serial
 1-s = parallelizable portion

Speedup_overall

= 1 / ( ( 1 - Fraction_enhanced ) + ( Fraction_enhanced / Speedup_enhanced ) )

文章发送至parallel@ctc.com(行政:bigrigg@ctc.com)
存档:http://www.hensa.ac.uk/parallel/internet/usenet/comp.parallel


批评:

虽然 Amdahl 制定了面向流程的加速比较,但许多教育工作者不断重复该公式,就好像它是为多处理流程重新安排而假设的,而没有考虑以下主要问题:

  • 处理的原子性(处理的某些部分不能进一步分割,即使有更多的处理资源可供进程调度程序使用并且是免费的——参考资源绑定的、进一步不可分割的原子处理- 上面图1中的部分)
  • 附加开销,主要存在并与任何新进程创建、调度程序重新分配、进程间通信、处理结果重新收集以及远程进程资源的释放和终止相关联(它对N 的比例依赖性尚未得到广泛证实,参考 JL Gustafson 博士、Jack Dongarra 等人,他们声称在N 中的方法优于线性缩放)

如果在当代并行计算领域将苹果与苹果进行比较,这两个因素都必须包含在开销严格、资源感知的阿姆达尔定律重新制定中。任何使用开销天真公式的结果都是教条式的结果,到目前为止,Gene M. Amdahl 博士在他的论文(上面的参考文献)中没有提出这个结果,并且比较苹果和橙子从来没有给任何人带来任何积极的影响。任何严谨领域的科学论述。


阿姆达尔定律加速 S 的开销严格重新制定:

               1
S =  __________________________; where s, ( 1 - s ), N were defined above
                ( 1 - s )            pSO:= [PAR]-Setup-Overhead     add-on
     s  + pSO + _________ + pTO      pTO:= [PAR]-Terminate-Overhead add-on
                    N               

开销严格和资源感知的重新制定:

                           1                         where s, ( 1 - s ), N
S =  ______________________________________________ ;      pSO, pTO
                    / ( 1 - s )           \                were defined above
     s  + pSO + max|  _________ , atomicP  |  + pTO        atomicP:= further indivisible duration of atomic-process-block
                    \     N               /

最大有效加速的交互式工具:

由于上述原因,一张图片在这里可能值百万字。试试this,它是一个完全交互的工具,用于使用严格的开销阿姆达尔定律。

【讨论】:

  • 应用 Amdah 定律的另一个可能问题:缓存和流水线 OoO exec 意味着对进程的一个步骤的优化可能会影响稍后在同一 CPU 上运行的其他部分。 (更不用说其他人同时运行,争夺内存带宽等共享资源)。因此,将 Amdahl 定律应用于分析器输出(显示每个函数花费的时间)可能会让您相信大幅加速一个函数会使其他函数的时间保持不变。如果加速涉及接触更多内存,或者如果函数比 OoO exec 重要的短,则不正确。
  • @PeterCordes 显然如此, 恕我直言,流程执行(通常是 NUMA)生态系统的这些(不可扩展)副作用是,在不是水平游戏的测试用例中传播所谓的超线性加速的核心原因(因此最终比较无法比较,争论 苹果到橘子)。如果缓存“改进”数据的重用(不需要以低于 1/300 的 TimeDOMAIN 成本从 NUMA RAM 存储中进行内存 I/O 操作),从 HPC 的角度来看,这无疑是好事-预算,但这样的观点并不能证明在比较 [SERIAL] 运行时没有相同的“优势”
  • @PeterCordes Amdahl 论证的美妙之处在于被称为收益递减法则的解释——无论我们有多少处理实体另外,这样做的理由越来越少,绩效/生产力/回报经济“改善”的理由。 Amdahl 的玻璃天花板是主要的,无论我们是尝试扩大一些机器代码还是大规模疫苗接种流程,在购物中心停车场或大规模生产流程中精心策划在几条、更多或许多口罩生产线上使用纳米材料的呼吸器。 Amdahl 规则...
  • @PeterCordes OoO 执行本身并不是一个论据,它是一个已知的技巧(仅在某些 CPU 微架构上,硅设计被驱动到那个方向)对于 硬件延迟屏蔽,可能是因为已知设计对内存 I/O 访问时间的限制,或者是因为只有有限数量的 ALU-s 可用或不可用管道中 CPU-uop 的那个特定时刻,因此 OoO 执行技巧是一种规避(并且肯定只是在一定程度上)这些障碍的方法(故意不提及核心热量和功率限制)
  • 事实上,阿姆达尔定律是在以下假设下制定的:总时间是步骤时间的总和,并且改变一个步骤不会改变其他步骤的时间。这并不总是正确的,尤其是当您的“步骤”非常精细时。例如对于单独的 asm 指令,给定指令没有单一的“成本”,您可以将其加起来以获得程序的总成本,除非在缓存和流水线之前非常古老的简单 CPU 上。
猜你喜欢
  • 2013-04-25
  • 2017-02-10
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 2013-09-08
相关资源
最近更新 更多