G.M.Amdahl在1967年提出了Amdahl’s law,针对并行处理的scalability给出了一个模型,指出使用并行处理的提速由问题的可并行的部分所决定。这个模型为并行计算系统的设计者提供了指导。

其形式如下:

f为问题中可被并行处理的部分的比例,m为并行处理机的数量,Speedup为并行后相比串行时的提速。

Amdahl’s law表明在问题的可并行部分不大时,增加处理机的数量并不能显著地加快解决问题的时间。这让计算机界产生了悲观的情绪,有人认为搞多处理器的机器没什么前途。但是,Amdahl’s law忽略了一些重要的事实。Amdahl’s law是一个fixed-size model,就是要解决的问题的大小是固定的,可并行化的比例是固定的。而在实际中,我们不会用1000个处理机来处理一个小问题,当我们的计算能力的总和增加之后,可以也应该去解决更大的问题。当问题更大的时候,通常情况下,这个问题也有更大的可能被分为可并行化的小问题(或者说处理多个相互独立的问题),也就意味着f更大(更接近1),能得到更大的Speedup。

直到1988年,Gustafson提出了一个fixed-time model,也即Gustafson’s Law,人们对重拾对大规模并行计算的信心。Gustafson’s Law可表示为以下公式:

对一个在单处理机上的工作w,我们将其扩大到m个核上,scaled workload为w’=(1-f)w+fmw。对在串行条件下对w’的处理时间比上在并行条件下对w’的处理时间即为Speedup。在这个模型中,问题的规模是可以被扩大(scale)的。从这个公式可以看到,f固定时,speedup显线性增长。

在1990年,Sun and Ni提出了memory-bounded model,即Sun and Ni’s law。形式如下:

在这个模型下,workload被scale的方式不同,workload跟随着memory的增长而以某种方式增加(G(n))。在这个模型里,Speedup也随处理机的数量的增长而线性增长,而且比Gustafson’s Law的增长情况更乐观。

其实,这几个模型其实在本质上是一致的,并没有冲突,那为什么Speedup会有那么大的不同呢?这是因为处理机的使用率。当workload被scale,而不是fix时,增加的处理机就会有事可做,保持一个比较高的使用率。也就是这些computing capacity没有被浪费掉。如果没有被浪费掉,这些computing capacity就在一定的时间多完成了一些工作,完成整个工作的时间就缩短了。所以,Speedup就变大了。

结论是,多搞些处理机是没错的,但是要有具有好的scalability的系统支持,以提高处理机的使用率。

本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/536508 ,如需转载请自行联系原作者

Amdahl’s law (阿姆达尔定律)的演化和思考相关推荐

  1. 【并发】Amdahl's Law 阿姆达尔定律

    转自:http://book.2cto.com/201301/12892.html 利用Amdahl定律,可以计算出通过改进计算机某一部分而能获得的性能增益.Amdahl定律表明,使用某种快速执行模式 ...

  2. Amdahl(阿姆达尔定律) Law

    推导 局限性 串行程序的优化 和边际收益递减规律的关系 举例 阿姆达尔定律给出了任务在固定负载的情况下,随着系统资源的提升,执行速度的理论上限.以计算机科学家Gene Amdahl命名. Slaten ...

  3. 阿姆达尔定律(Amdahl's law)

    首先给出阿姆达尔定律的数学公式描述: S(N)=1(1−p)+pN S(N)=\frac1{(1-p)+\frac pN} pp:程序中可并行部分的程序在单核上执行时间的占比: NN:处理器的数目(总 ...

  4. 阿姆达尔定律(Amdahl’s Law)

    阿姆达尔定律是一个计算机科学界的经验法则,因IBM公司计算机架构师吉恩·阿姆达尔而得名.吉恩·阿姆达尔在1967年发表的论文中提出了这个重要定律. 阿姆达尔定律主要用于发现仅仅系统的部分得到改进,整体 ...

  5. 并行计算系列-阿姆达尔定律(Amdahl‘s Law)

    阿姆达尔定律是一个计算机科学界的经验法则,因IBM公司计算机架构师吉恩·阿姆达尔而得名.吉恩·阿姆达尔在1967年发表的论文中提出了这个重要定律. 阿姆达尔定律主要用于发现仅仅系统的部分得到改进,整体 ...

  6. 阿姆达尔定律和Gustafson law

    阿姆达尔定律 Strong scaling is a measure of how, for a fixed overall problem size, the time to solution de ...

  7. 阿姆达尔定律 是什么 Amdahl 并行效率计算经验法则

    阿姆达尔定律(Amdahl) 是计算机界的一个经验法则.是以计算机科学家吉恩·阿姆达尔来命名的. 它表示串行执行的计算机程序在并行执行后效率的 提升. 它给 出了使用并行处理理论上能带来的效率提高. ...

  8. 论文:Amdahl(阿姆达尔定律)与Gustafson(古斯塔夫森定律)。

    在高并发程序设计中有两个非常重要的定律: Amdahl(阿姆达尔定律) Gustafson定律(古斯塔夫森定律) 这两个定律从不同的角度诠释了加速比与系统串行化程度.cpu核心数之间的关系,它们是我们 ...

  9. Amdahl's law and Gustafson's law

    在高并发程序设计中有两个非常重要的定律: Amdahl(阿姆达尔定律) Gustafson定律(古斯塔夫森定律) 这两个定律从不同的角度诠释了加速比与系统串行化程度.cpu核心数之间的关系,它们是我们 ...

最新文章

  1. UPS不间断电源放电时间计算方法
  2. mouseevent tips
  3. php点击链接代码,php 获取超链接中文本的代码
  4. dpkg: error: dpkg status database is locked by another process
  5. 关于Chromium Embedded Framework (CEF)的编译
  6. vim代码对齐命令_vim自动对齐
  7. jmeter进行http压力测试
  8. 编译龙芯PMON流程
  9. php 人民币格式化,用PHP解析时格式化货币
  10. Android Camera聚焦区域和测光区域的设置
  11. [Python模块]根据姓名笔画数排序
  12. SUV世家广汽三菱,牵手微信企业号打造学习型企业
  13. PMIC 配置VIN0 VIN1选择
  14. python猜拳游戏电脑随机循环版
  15. Google play billing Alpha / Beta 测试
  16. 【SpringBoot高级篇】springboot实现上传docdocx文件格式转html在线预览v2.0
  17. Biological Pathways 生物途径(通路)
  18. linux用户解锁pam_tally,多次登录失败用户被锁定及使用Pam_Tally2解锁
  19. Java笔记——文件操作I/O 02
  20. 用HTML+CSS跟简单的js操作完成响应式星巴克首页

热门文章

  1. android hardware architecture
  2. Android---手动创建线程与GUI线程同步(三)
  3. Java并发编程—ScheduledThreadPoolExecutor原理分析
  4. 动态规划—最长公共子序列
  5. windows系统切换目录方法
  6. 【云计算】使用privilege权限对Docker内核参数进行定制
  7. nyoj--86--找球号(一)(hashset二分)
  8. redis-Windows下安装与操作
  9. 翻译(六)——T-SQL的进阶之路:超过基础的2级水平:写子查询
  10. DES加密解密与AES加密解密