转自:http://book.2cto.com/201301/12892.html

利用Amdahl定律,可以计算出通过改进计算机某一部分而能获得的性能增益。Amdahl定律表明,使用某种快速执行模式获得的性能改进受限于可使用此种快速执行方式的时间比例。

Amdahl定律定义了使用某一特定功能所获得的加速比(speedup)。加速比是什么?假定我们可以对某一计算机进行某种升级,在采用这一升级时可以提高计算机的性能。加速比的定义为:

加速比告诉我们,与原计算机相比,在经过升级的计算机上运行一个任务可以加快多少。

Amdahl定律为我们提供了一种快速方法,用来计算某一升级所得到的加速比,加速比取决于下面两个因素。

(1) 原计算机计算时间中可升级部分所占的比例。例如,一个程序的总执行时间为60秒,如果有20秒的执行时间可进行升级,那这个比例就是20/60。我们将这个值称为升级比例,它总是小于或等于1。

(2) 通过升级执行模式得到的改进,也就是说在为整个程序使用这一执行模式时,任务的运行速度会提高多少倍。这个值等于原模式的执行时间除以升级模式的执行时间。如果为程序的某一部分采用升级模式后需要2秒,而在原始模式中需要5秒,则提升值为5/2。我们将这个值称为升级加速比,它总是大于1。

原计算机采用升级模式后的执行时间等于该计算机未升级部分耗用的时间加上使用升级部分耗用的时间:

例题 假设我们希望升级一个用于提供Web服务的处理器。新处理器执行Web服务应用程序的计算速度是原处理器的10倍。假定原处理器有40%的时间忙于计算,60%的时间等待I/O,进行这一升级后,所得到的总加速比为多少?
解答 升级比例=0.4、升级加速比=10、总加速比 
 

Amdahl定律阐述了一个回报递减规律:如果仅改进一部分计算的性能,在增加改进时,所获得的加速比增量会逐渐减小。Amdahl定律有一个重要推论:若某一升级仅对一项任务的一部分适用,则该任务的总加速比不会超过一个数值,该数值即1减去未升级部分所占比例,再取其倒数。

在应用Amdahl定律时的一个常见错误是混淆“可升级部分在升级之前所占时间比例”和“升级部分在升级之后所占时间比例”。如果我们测量的不是计算中可以应用该升级的时间,而是测试应用升级之后的时间,结果就是错误的!

Amdahl定律可用来判断某项升级能使性能提高多少,以及如何分配资源来提高性价比。分配目标显然是:某一部分的升级资源应当与这一部分原来花费的时间成比例。Amdahl定律对于比较两种系统的整体系统性能尤其有用,不过也可用于比较两种处理器设计,如下面的例子所示。

例题
图形处理器中经常需要的一种转换是求平方根。浮点(FP)平方根的实现在性能方面有很大差异,特别是在为图形设计的处理器中,尤为明显。假设FP平方根(FPSQR)占用一项关键图形基准测试中20%的执行时间。有一项提议:升级FPSQR硬件,使这一运算速度提高到原来的10倍。另一项提议是让图形处理器中所有FP指令的运行速度提高到原来的1.6倍,FP指令占用该应用程序一半的执行时间。设计团队相信,他们使所有FP指令执行速度提高到1.6倍所需要的工作量与加快平方根运算的工作量相同。试比较这两种设计方案。
解答 可以通过计算加速比来对比两种方案:

 
  提高整体FP运算的性能要稍好一些,原因是它的使用频率较高。
Amdahl定律的适用范围不仅限于性能。我们重做1.7节的可靠性例题,通过冗余来提高电源可靠性,将MTTF从200 000小时提高到830 000 000小时,达到4150多倍。
例题 磁盘子系统故障率的计算为:
 
 
  因此,可改进的故障率比例就是5次/百万小时占整个系统23次/百万小时的比例,
即0.22。
解答 可靠性的改进为:
 
 
  尽管一个模块的可靠性提高了4150倍之巨,但从系统的角度来看,这一改变所带来的好处虽然可测,但数值很小。

在上面的几个例子中,我们需要知道改进后的新版本所占比例;这些时间一般是很难直接测量的。在下一节,我们将看到另外一种比较方法:利用一个公式将CPU执行时间分解为三个独立分量。如果我们知道一种候选方案是如何影响这三个分量的,就可以判断它的整体性能。另外,通常可以构建一个模拟器,在实际设计硬件之前先测量这些分量。

【并发】Amdahl's Law 阿姆达尔定律相关推荐

  1. Amdahl’s law (阿姆达尔定律)的演化和思考

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

  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. 论文:Amdahl(阿姆达尔定律)与Gustafson(古斯塔夫森定律)。

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

  7. 阿姆达尔定律和Gustafson law

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

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

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

  9. Amdahl's law and Gustafson's law

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

最新文章

  1. asp.net 2.0中一次性更新所有GRIDVIEW的记录
  2. Google Brain 研究员梁辰:从零开始搜索机器学习算法(附视频、PPT)
  3. ROS系统 通过服务编程实现两个数相加并返回
  4. Android 编译时:m、mm、mmm、mma、mmma的区别
  5. matlab变压器损耗仿真,基于Matlab的变压器运行特性仿真专题报告.docx
  6. impdp导入dmp文件
  7. methods和computed的区别
  8. 使用java实现数据库编程 第一章:数据库的设计
  9. day4:非参数统计及其检验方法(无sas代码)
  10. python 模拟键盘输入编辑_python 模拟键盘输入
  11. 国民体质测定标准计算机应用软件,体测标准计算器
  12. 王鉴老师--沪师经纪-刘建
  13. vue项目中引入vuex------初试
  14. 测试用例之QA有话说
  15. 海马体记忆训练:让你拥有超常记忆力
  16. 黑客侦察和隐藏IP地址的方法
  17. MATLAB /Simulink 快速开发STM32(使用st官方工具 STM32-MAT/TARGET)
  18. C/C++仓库管理系统
  19. Linux(ubuntu)安装libevent
  20. 点云深度学习的经典理论与实用算法

热门文章

  1. 标准差越大越集中_中国大学MOOC: 正态分布的标准差越大,其概率密度曲线越高越集中。...
  2. 软件控制硬件c语言编程,硬件编程用什么软件好
  3. word排版案例报告_导师:论文排版都搞不好,你拿什么去投稿?!
  4. 解决mac BigSur外接显示器发白、发黄、字体发虚 (OpenCore关闭SIP和Read-Only System)
  5. DRM驱动(六)之atomic_check
  6. 怎么查看php-fpm的错误日志,php fpm如何开启错误日志
  7. 小游戏系列算法之五广度优先搜索,双向广搜,八数码,华容道
  8. Microsoft SQL Server 2008 MDX Step by Step中关于MDX Step-by-Step.abf损坏文件的处理
  9. 安装archlinux+cinnamon笔记
  10. 棋盘效应(Checkerboard Artifacts)