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