欢迎光临散文网 会员登陆 & 注册

【转】计算机架构及设计:Amdahl' s Law(阿姆达尔定律)

2023-06-24 02:48 作者:小林家的垃圾王R  | 我要投稿


计算机架构及设计:Amdahl' s Law(阿姆达尔定律)


Yang


微架构研究

基本介绍:

阿姆达尔定律是计算机系统设计的重要定量原理之一,于1967年由IBM360系列机的主要设计者阿姆达尔首先提出。该定律是指:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。简单来说是通过更快的处理器来获得加速是由慢的系统组件所限制。

阿姆达尔曾致力于并行处理系统的研究。对于固定负载情况下描述并行处理效果的加速比s,阿姆达尔经过深入研究给出了如下公式:

S=1/(1-a+a/n)

其中,a为并行计算部分所占比例,n为并行处理结点个数。这样,当1-a=0时,(即没有串行,只有并行)最大加速比s=n;当a=0时(即只有串行,没有并行),最小加速比s=1;当n→∞时,极限加速比s→ 1/(1-a),这也就是加速比的上限。例如,若串行代码占整个代码的25%,则并行处理的总体性能不可能超过4。这一公式已被学术界所接受,并被称做“阿姆达尔定律”,也称为“安达尔定理”(Amdahl law).


在性能优化中的应用:

阿姆达尔除了计算并行处理的加速比之外,还可以用来评估处理器性能的提升的程度。如下是抽象出的阿姆达尔性能优化公式:

举一个简单例子,运行一个程序需要100秒,其中程序中的乘法运算占用了80秒,问:需要提高多少乘法器的速度才能让整个程序速度提高五倍?

首先可以知道:

execution time affected by improvement = 80s

execution time unaffected = 20s

execution time after improvement = 100s/5=20s

假设优化量提升倍数(amount of improvement)为n,套用公式后可以得到如下:

20s = 80s/n + 20s

80s/n = 0, n等于无穷大。所以得出结论,无论如何提高乘法器的计算速度,都无法把整个程序性能提高五倍。

最后:

所以对于处理器集成电路开发者或者程序优化者而言,对于某项优化是否有必要或者是否能够达到理想的预期性能,需要依据阿姆达尔定律,考虑优化项在这个执行时间所占比例,定量考虑,这样估算出的结果才是真正的实际性能。


编辑于 2021-11-07 17:23


【转】计算机架构及设计:Amdahl' s Law(阿姆达尔定律)的评论 (共 条)

分享到微博请遵守国家法律