Parallel processing 阿姆达尔的负加速';什么是法律?

Parallel processing 阿姆达尔的负加速';什么是法律?,parallel-processing,computer-science,cpu-architecture,computation-theory,parallelism-amdahl,parallel-computing,Parallel Processing,Computer Science,Cpu Architecture,Computation Theory,Parallelism Amdahl,Parallel Computing,阿姆达尔定律指出,整个系统的加速是必要的 an_old_time / a_new_time 其中a\u new\u time可以表示为(1-f)+f/s',其中f是通过一些修改增强的系统部分,而s'是系统部分增强的量。然而,在为s'求解该方程之后,似乎有许多情况下s'为负值,这在物理上没有任何意义 考虑到s=2(整个系统的速度增加100%)和f=0.1(系统的10%受到一些速度增强的影响s'),我们通过设置旧时间=1和s'=f/(f+1/s-1)来解决s' 插入f和s的值,我们发现:s'=0.

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

an_old_time / a_new_time
其中
a\u new\u time
可以表示为
(1-f)+f/s'
,其中
f
是通过一些修改增强的系统部分,而
s'
是系统部分增强的量。然而,在为
s'
求解该方程之后,似乎有许多情况下
s'
为负值,这在物理上没有任何意义

考虑到
s=2
(整个系统的速度增加100%)和
f=0.1
(系统的10%受到一些速度增强的影响
s'
),我们通过设置
旧时间=1
s'=f/(f+1/s-1)
来解决
s'

插入
f
s
的值,我们发现:
s'=0.1/(0.1+0.5-1)=0.1/-0.4

这意味着
s'
的值为负值


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

Amdahl定律,也称为Amdahl参数,用于在整个过程只有一部分得到改进时,找到对整个过程的最大预期改进


由于代数关系,
s+(1-s)==1
,s是
<0.0。。1.0>
,此处不可能出现负值


阿姆达尔论点的完整背景
和当代批评,
添加所有主要的附加管理费用
因素

更好地处理工作的原子性
它经常被应用于计算机领域,用来预测使用多个处理器所能达到的理论最大加速比。该法律以Gene M.AMDAHL博士(IBM公司)的名字命名,并于1967年在AFIPS春季联合计算机会议上提出

他的论文扩展了之前的工作,阿姆达尔本人将其称为“……目前出版的有关计算机能力的最全面分析之一……”,由斯坦福大学工商管理学院Kenneth E.KNIGHT教授于1966/9月出版。 本文对工艺改进进行了概述


图1: 在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
整体加速

=1/((1-分数增强)+(分数增强/加速增强))

文章parallel@ctc.com(行政:bigrigg@ctc.com)
档案:


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

  • 处理的原子性(处理的某些部分不可进一步分割,即使更多的处理资源可供进程调度器使用和免费使用——参考上面图1中的资源绑定、进一步不可分割的原子处理部分)
  • 附加开销,主要与任何新进程创建、调度程序重新分配、进程间通信、处理结果重新收集以及远程进程资源的释放和终止相关(参考J.L.Gustafson博士、Jack Dongarra等人的观点,它与
    N
    的比例依赖性尚未得到广泛证实,他声称在
    N
    中采用比线性缩放更好的方法)
这两组因素都必须被纳入严格的、有资源意识的阿姆达尔定律的重新表述中,如果在当代并行计算领域中对苹果与苹果进行比较的话。任何一种对开销天真公式的使用都会产生教条式的结果,而这一结果目前还不是由Gene M.Am博士表述的达尔在他的论文(参考上文)中,将苹果与橙子进行比较,从未给任何严格领域的科学论述带来任何积极的影响


严格重新制定阿姆达尔定律加速:
开销严格且资源敏感的重新表述:
可实现最大有效加速的交互式工具:
由于上述原因,这里的一张图片可能值一百万字。试试看,使用严格阿姆达尔定律的完全交互式工具是交叉链接的。

s=2和F=0.1是不可能的,因为当s'接近无穷大时,s接近1/(1-F),在本例中为1.111…,因此S不能大于该值。应用阿姆达定律的另一个可能问题:缓存和流水线OoO exec意味着对进程的一个步骤进行优化可能会影响以后在同一CPU上运行的其他部分。(更不用说其他同时运行、争夺内存带宽等共享资源的程序了)。因此,将阿姆达尔定律应用于探查器输出(显示每个函数花费的时间)可能会让您相信,将一个函数加速很多会使其他函数的时间保持不变。如果加速涉及到更多内存,或者如果函数比OoO exec短,则情况并非如此。@PeterCordes显然是这样,这些(不可扩展的)进程执行的副作用(通常是NUMA)IMHO认为,生态系统是所谓的超线性加速的核心原因,它在测试用例中不是一个公平的游戏场(因此,最终将不可压缩的数据进行比较,争论苹果和橙子)。如果缓存“改善”数据的重复使用(不需要以低于1/300的时域成本从NUMA RAM存储中存储I/O数据)毫无疑问,从HPC预算的角度来看,这是很好的,但这种观点并不证明在比较[SERIAL]时没有相同的“优势”runs@PeterCordes阿姆达尔论证的美妙之处在于对克诺的诠释
                                                   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
  CRI UNICOS has a useful command amlaw(1) which does simple
  number crunching on Amdahl's Law.
              ------------
                       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
               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               /