Amdhl定理及其对多核时代的影响
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Amdhl定理及其对多核时代的影响
Amdhl定理描述:系统中某部件由于采⽤某种⽅式使系统性能改进后,整个系统性能的提⾼与该⽅式的使⽤频率或占总的执⾏时间的⽐例有关。
主要应⽤:改善“系统瓶颈”性能。
Amdahl定律定义了加速⽐:
加速⽐=采⽤改进措施后性能/未采⽤改进措施前的性能=未采⽤改进措施前执⾏某任务时间/采⽤改进措施后执⾏某任务的时间
n个处理器加速因⼦S=n/[1+(n-1)f]:f为⾮平⾏百分⽐,n越⼤,S不能超过1/f
阿姆达尔定律不可并⾏计算的存在是很重要的,因为它将限制并⾏化的潜在好处。
阿姆达尔定律指明如果⼀个计算的1/S本质上是顺序的,那么最⼤的性能改进将受限于因数S。
其论证如下,⼀个并⾏计算的执⾏时间TP将是顺序部分计算时间和可并⾏化部分计算时间两者的和。
如果该计算顺序地执⾏需要花费的时间是TS,则当有P个处理器时,TP可表⽰为S=n/[1+(n-1)f]
假想P值⾮常⼤,使得可并⾏化部分的执⾏时间可以忽略不计,则最⼤可改进的性能将是因数S。
也就是说,顺序执⾏代码在计算中所占的⽐例决定了使⽤并⾏⼿段所能改进性能的潜⼒。
阿姆达尔定律是由IBM公司的计算机体系结构师吉恩·阿姆达尔在1967年发表的论⽂中提出的。
这⼀定律与供求定律(Low of Supply and Demand)具有同样的意义:如前⾯的⽅程式所⽰,它描述了程序执⾏时间中两部分的关系。
两个定律均是解释重要现象⾏为的有⼒⼯具,且两个定律都将影响该⾏为的其他参量视为常数。
特别地,阿姆达尔定律适⽤于单程序场合。
实际的情况可能⽐阿姆达尔定律暗⽰的更坏。
⼀个明摆着的问题是计算的可并⾏化部分可能⽆法改进到极致(即只要增加仍可继续改进性能的处理器数总有⼀个上限),因此并⾏执⾏时间不⼤可能消失。
此外,如在上⼀节所提到的,⼀个并⾏实现经常会⽐顺序求解需要执⾏更多的总指令数,导致低估(1-1/S)·TS值。
包括阿姆达尔在内的许多⼈对该定律的解释表明使⽤⼤量的处理器求解问题只能获得有限的成功,但这似乎与⼤量的并⾏计算机能显著改进计算性能的报道相冲突。
阿姆达尔定律描述的⼀个关键事实是它只适⽤于计算的⼀种场合,即施⾏并⾏化后计算中的顺序部分将占据执⾏时间的主要部分。
阿姆达尔定律是在固定应⽤规模的前提下考虑并⾏性增长的影响。
但⼤多数并⾏计算则是固定并⾏性⽽扩展应⽤的规模。
在这种情况下,随着所考虑规模的增加,顺序代码所占的⽐例就越来越⼩。
所以,将问题规模翻倍后,顺序部分的增长⼏乎可以忽略,从⽽使得求解问题有更多的部分可以并⾏执⾏。
概括地讲,阿姆达尔定律并不否定并⾏计算的价值。
相反,它提醒我们要想达到并⾏性能就必须考虑整个程序。
随着技术的发展,多核⼼处理器已成为现今处理器发展的潮流。
提⾼处理器性能的⽅法有许多,其中主要有提⾼频率与增加核⼼数量等。
提⾼频率在现有条件下已经⽐较困难且不经济,增加核⼼数量之路⼜能⾛多远。
加速⽐是衡量系统性能提升的⼀个重要指标,Amdahl定律便是其中之⼀。
在Amdahl定律的范围内(且不考虑包括通讯开销等在内的并⾏开销),通过对单⼀核⼼提⾼频率和增加核⼼数量两个⽅⾯的讨论可以得出:在可并⾏执⾏部分的执⾏时间占总执⾏时间的⽐例f=0.5时,提⾼单⼀核⼼频率与增加核⼼所得加速⽐相同;当f0.5时,提⾼单⼀核⼼频率可⽐增加核⼼数量获得更⼤加速⽐;当f0.5时,增加核⼼数量获得的加速⽐更⼤些。
因此,在核⼼数量增加到⼀定程度时,通过提⾼单⼀核⼼的频率可获得更⾼加速⽐,也可能是更经济有效的⽅案。