Amdahl定律

Amdahl定律

在这里插入图片描述
在这里插入图片描述

例:设改进前系统执行时间为3s,改进后系统执行时间为2s

则:加速比=3/2

即计算机改进后比改进前快了1.5倍

Amdahl定律影响因素

在这里插入图片描述

在这里插入图片描述

公式推导
  • 可改进的系统比例为fe,则不可改进的部分比例为(1-fe)

  • 不可改进的部分耗时为T0 * (1- fe)

  • 设改进后部件耗时为T,则 (T0*fe)/T = re [可改进部分耗时/可改进部分改进后耗时=部件加速比]

  • 则改进后总体耗时:Tn = T0 * (1 - fe) + (T0 * fe) / re = T0* (1 - fe + fe / re )

  • 则整体加速比:Sp = T0 / T0* (1 - fe + fe / re ) = 1 / (1 - fe + fe / re)

  • 多部件情况下多可改进部分比例相加即可

讨论

在这里插入图片描述

  • 解释:fe确定则表示fe为常量,及lim re ->∞ fe/re = 0,则Sp = 1 / (1-fe),所以系统性能受不可改进部分影响
例题

在这里插入图片描述

讨论2

在这里插入图片描述

  • n表示并行线程数或核心数
  • 1-fe表示不可并行部分占比,1-fe=0,则fe=1,所以Sp=1/(1/n)=n
总结

在这里插入图片描述

### Amdahl 定律的定义和核心概念 Amdahl定律描述了通过优化或加速计算机系统的一部分所能获得的整体性能提升限度。具体来说,如果只有一部分程序被加速,则整体速度增益受限于未被加速的部分所占的比例[^3]。 #### 数学表达式 假设 \( S \) 表示程序执行时间相对于原始版本的最大可能加速倍数;\( f \) 是可以通过改进措施得到加速的那一部分工作量占比(0≤f<1),其余 (1-f) 的部分无法受益于这种特定类型的优化。那么根据Amdahl定律: \[ S_{\text{max}} = \frac{1}{(1 - f) + \frac{f}{S_p}} \] 其中 \( S_p \) 代表可并行化部分的实际加速因子。当 \( f=0 \),即没有任何部分能够被加速时,最大理论加速比等于1;反之,即使存在无限大的 \( S_p \),只要还有不可忽略的工作负载未能受益于此种形式下的提速方案,最终取得的效果也会受到限制。 此公式强调了一个重要的事实:为了显著改善整个系统的效率,必须关注那些占用大量时间和资源的关键路径上的操作,并尽可能减少串行处理阶段的时间消耗。 #### 实际应用场景 在实际应用中,Amdahl定律提醒开发者们,在追求高性能计算的过程中,不仅要考虑如何有效地利用多核或多处理器架构带来的潜力,还要重视算法设计本身是否存在瓶颈环节。例如,在构建大规模机器学习平台时,除了增加GPU数量外,还需要审视数据预处理流程、特征工程步骤等方面是否有进一步精简的空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰点契约丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值