Amdahl定律

来源:互联网 发布:蓝牙打印机软件 编辑:程序博客网 时间:2024/04/28 13:06
 计算机科学中的一个重要定律。
  描述:系统中某部件由于采用某种方式使系统性能改进后,整个系统系能的提高与该方式的使用频率或占总的执行时间的比例有关。
  主要应用:改善“系统瓶颈”性能。
  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。也就是说,顺序执行代码在计算中所占的比例决定了使用并行手段所能改进性能的潜力。
  阿姆达尔定律(Amdahl誷 Law) 阿姆达尔定律是由IBM公司的计算机体系结构师吉恩·阿姆达尔在1967年发表的论文中提出的。这一定律与供求定律(Low of Supply and Demand)具有同样的意义:如前面的方程式所示,它描述了程序执行时间中两部分的关系。两个定律均是解释重要现象行为的有力工具,且两个定律都将影响该行为的其他参量视为常数。特别地,阿姆达尔定律适用于单程序场合。
  实际的情况可能比阿姆达尔定律暗示的更坏。一个明摆着的问题是计算的可并行化部分可能无法改进到极致(即只要增加仍可继续改进性能的处理器数总有一个上限),因此并行执行时间不大可能消失。此外,如在上一节所提到的,一个并行实现经常会比顺序求解需要执行更多的总指令数,导致低估(1-1/S)·TS值。
  包括阿姆达尔在内的许多人对该定律的解释表明使用大量的处理器求解问题只能获得有限的成功,但这似乎与大量的并行计算机能显著改进计算性能的报道相冲突。到底哪一个是正确的呢?
  阿姆达尔定律描述的一个关键事实是它只适用于计算的一种场合,即施行并行化后计算中的顺序部分将占据执行时间的主要部分。阿姆达尔定律是在固定应用规模的前提下考虑并行性增长的影响。但大多数并行计算则是固定并行性而扩展应用的规模。在这种情况下,随着所考虑规模的增加,顺序代码所占的比例就越来越小。所以,将问题规模翻倍后,顺序部分的增长几乎可以忽略,从而使得求解问题有更多的部分可以并行执行。
  概括地讲,阿姆达尔定律并不否定并行计算的价值。相反,它提醒我们要想达到并行性能就必须考虑整个程序。
原创粉丝点击