Chinaunix首页 | 论坛 | 博客
  • 博客访问: 39995
  • 博文数量: 13
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 146
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-16 13:29
文章分类

全部博文(13)

文章存档

2013年(13)

我的朋友

分类: IT业界

2013-05-16 19:03:56

      阿姆达尔定律是由IBM公司的计算机体系结构师吉恩·阿姆达尔在1967年发表的论文中提出的计算机科学中的一个重要定律。其意义:系统中某部件由于采用某种方式使系统性能改进后,整个系统性能的提高与该方式的使用频率或占总的执行时间的比例有关。它的主要应用是改善“系统瓶颈”性能。阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。
       阿姆达尔曾致力于并行处理系统的研究。对于固定负载情况下描述并行处理效果的加速比s,阿姆达尔经过深入研究给出了如下公式: S=1/(a+(1-a)/n).其中,a为串行计算部分所占比例,n为并行处理结点个数。这样,当a=0时,最大加速比s=n;当a=1时,最小加速比s=1;当n→∞时,极限加速比s→ 1/a,这也就是加速比的上限。例如,若串行代码占整个代码的25%,则并行处理的总体性能不可能超过4。这一公式已被学术界所接受,并被称做“阿姆达尔定律”(Amdahl law)。
        Amdahl定律对多核技术的影响:
        随着技术的不断发展,双核、三核甚至四核心的处理器正逐渐成为个人电脑的主流配置,正迅速地朝着多核心时代迈进。但同时,一个疑问开始浮现,处理器的这种发展趋势还能走多远。当我们同时运行几个程序时,实际上只有少数几个线程处于工作中,其它的并未做什么工作。因此,并行运行多个线程实际上并不能显著提升性能。多核处理器本身是单核系统达到物理极限而出现的,但是多核处理器本身也有性能提升的限制因素。这个限制因素又引导着多核技术发展的趋势。充分发掘多核处理器的潜力,提升多核处理器的性能,必须使这个限制因素的影响降到最低。阿姆达尔定律(Amdahl's Law)。 
       阿姆达尔定律告诉我们:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式使用频率占总执行时间的比例有关。由于采用特殊的方法所能获得的加速比为:    在多核处理器中加速比是衡量并行程序性能的一个重要参数,定义为Speedup=使用单处理器执行时间/使用多处理器执行时间。
       根据阿姆达尔定律:其中,s是系统中串行执行部分占整个系统的比例,n是多核处理器中核的数目。当s=5%时,8核的加速比为5.93倍,16核的加速比为9.14倍,与理想状态的8倍、16倍有不小的差距。当s=30%时,8核的加速比仅有2.58倍,16核的加速比仅有2.91倍,完全没有发挥多核的优势。更加糟糕的是,实际情况往往比Amdahl定律给出的结果更差。考虑到核间交互带来的额外开销,核间同步影响整个系统的并发处理,设计糟糕的系统在多核下甚至比单核下的性能还要低得多。
      当n趋近于无穷大时(即假设我们有无穷多个核心),速度提升的上限是 1/s,即速度提升的上限取决于程序不能被并行计算的部分。  这个定律的结果就是,即便我们能够有效地并行计算一个程序的95%,剩下 5%只能串行计算的部分限制了这个程序的运行速度最多能提升1/5%=20倍。而现有的程序中很少能够做到95%以上部分的并行计算。  而且,如果你想在一个并行、线程化的应用中使用不只一个内核,就需要某种通信/同步,而且,对于一个固定的工作负载,通信/同步开销是作业所用 CPU 内核数量的单调递增函数。由此,我们需要对阿姆达尔定律做些简单修改:   
       其中,T为解决某计算问题所需的总时间,Ts是完成串行工作所需的时间,Tp 是完成所有并行工作所需的时间,N是并行工作中所使用的处理器数量,To是每颗处理器的通信与同步开销。T正是传统阿姆达尔定律公式中所没有的——随着处理器的增多,总开销也会增加。  在没有引入通信/同步开销的传统标准模型中,总时间T就是处理器数N的一个单调递减函数,会逐渐接近于Ts。而在修改后的公式中,我们很清楚地看到,由于存在通信开销,随着处理器数N的增加,在达到某一临界点后,总时间T就会开始增加。因此,对于一个完全并行的应用 (即Ts=0)来说,其所需处理器的最优数量是:   
       因此,能否有效降低串行执行比例和降低交互开销决定了能否充分发挥多核的性能,其中的关键在于:合理划分任务、减少核间通信。这正是当今多核处理器的发展趋势。
阅读(1276) | 评论(0) | 转发(0) |
1

上一篇:关于图灵奖

下一篇:Unix哲学

给主人留下些什么吧!~~