码迷,mamicode.com
首页 > 其他好文 > 详细

理解性能提升By阿姆达尔定律(Amdahl‘s law)

时间:2018-06-03 14:34:17      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:加速比   阿姆达尔定律   性能优化   并行程序   多线程   

我们在进行系统优化完成后,怎么评估优化的效果呢?最简单的方式是测量系统优化后耗时和优化前耗时的比例,这也叫加速比S(Speed Up)。
阿姆达尔定律在理解性能优化具有重要指导意义。优化前系统总耗时To(old),优化后系统总耗时Tn(new),加速比S=To/Tn。
通过下面这张图理解:(α为待提速部分原来耗时比例)
技术分享图片

S = To/Tn = 1 / (1-α)+α/k
当待优化部分提速无穷倍(k接近无穷大,不耗时间)时候,S = 1 / (1-α) , 也就是说,比如α=60%,如果系统中60%的部分能提速到不花时间,那么获得最高的加速比仍然只有1/0.4=2.5,系统才能提速2.5倍。也就是Amdahl‘s law的主要观点:要想显著加速整个系统,必须提升全系统大部分的速度。


我们在刻画并行程序的时候,理想情况是随着cpu核数增加,期望运行时间会线性下降。也就是说,期望线程数加一倍,运行时间就会减一半。
如图:
实际情况:
技术分享图片

理想情况:
技术分享图片

关键刻画性能提升的指标是加速比,旧时间/新时间,随着线程增加,时间对应减少,实际情况,随着线程增加,运行时间可能会增加,因为有了线程上下文切换的开销。

参考:
阿姆达尔定律: https://en.wikipedia.org/wiki/Amdahl%27s_law
加速比: https://en.wikipedia.org/wiki/Speedup

理解性能提升By阿姆达尔定律(Amdahl‘s law)

标签:加速比   阿姆达尔定律   性能优化   并行程序   多线程   

原文地址:http://blog.51cto.com/thinklili/2123626

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!