您的位置:首页 > 其它

阿姆达尔Law对系统性能提升的定义

2019-10-28 16:07 2306 查看

阿姆达尔定律 = Amdahl's Law,本篇重点是介绍该定律。

背景

系统架构中对系统性能设计的解决方案之一:“阿姆达尔方案”。书中还有个完全看不懂的公式,理解起来脑仁痛(不懂...)但发现很有价值,便系统的学习一下。

例题试先做一下,带着疑问点再看定律。

例题:假设某一功能的处理时间为整体系统运行时间的60%,若使该功能的处理速度提高至原来的5倍,则根据阿姆达尔定律,整个系统的处理速度可提高至原来的多少倍?

定理公式

优化前系统总耗时To(old),优化后系统总耗时Tn(new),加速比S=To/Tn。

Speedup = timeOld / timeNew

详细公式:

S = 1 / ((1-C) + C/S)

S(speedup),加速比。

C,原系统中能够改进的部分占总部分的比例,也可以说能够改进部分运行时间占总系统运行时间的比例,比如:75%。

S,改进后系统的提升比例,比如:5倍。

举例分解

上面的例子细化一下:程序A中子程序B的运行时间占A的60%,子程序B优化提升了5倍速度,那么程序A将多少?

程序A初始假设速度可为1,如下:

1/((1-0.6)+0.6/5) = 1/(0.4+0.12) = 1/0.52 = 1.923

Amdahl

阿姆达尔 Gene Amdahl,出生于1922年11月16日,出生在美国南达科他州的弗德鲁,是著名的企业家,创办多家公司。Amdahl曾经是研究并行处理系统的,1967年Amdahl推导出了固定负载情况下描述并行处理效果的加速公式。

P是并行率。若P=1,获取到无穷加速比;

定律的理解

本篇要说的是它的一种变形运用。

定义:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。

阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。简单来说:要想显著加速整个系统,必须提升全系统大部分的速度。可以再简单些:优化影响最大的部分

建议采用这样的思路来优化系统性能,也可以直接采用公式来量化改进效果。这个公式在操作上十分的简单很实用,可以运用在整个系统分析上,也可以在模块分析上,甚至是一个方法上。

友链支持

Gene Amdahl

百度定义 Amdahl's Law

参考博客:codingforspeed.comifeve.com

作者:Owen Jia <专注技术架构>

作者博客:https://blog.shareworld.vip

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: