Amdahl 定律 vs Gustafson 定律 — 完整教程、推导、应用场景及 Python 绘图
Amdahl 定律 vs Gustafson 定律:完整教程、推导、应用场景及 Python 绘图
理解并行加速:通过代码讲解 Amdahl 定律和 Gustafson 定律
并行计算基础:Amdahl 定律、Gustafson 定律及加速建模
并行加速原理:Amdahl 和 Gustafson 定律完整指南
并行扩展解析:推导并比较 Amdahl 和 Gustafson 定律
Amdahl vs Gustafson:并行加速完整指南(含 Python 代码)
并行性能建模:Amdahl 定律、Gustafson 定律及实际应用
学习并行加速:数学、直觉、应用场景及 Python 可视化
并行计算:必须掌握的两条定律(Amdahl & Gustafson)
工程师的并行加速:Amdahl 定律、Gustafson 定律及 Python 实现
从理论到代码:用 Amdahl 和 Gustafson 建模并行加速
实用并行加速指南:Amdahl 定律、Gustafson 定律及可视化
为什么并行不是无限的:简单解释 Amdahl vs Gustafson
并行加速真相:Amdahl 限制 vs Gustafson 扩展
并行计算神话与现实:Amdahl 和 Gustafson 的教训
引言
并行计算在现代计算中至关重要:
多核 CPU、GPU、分布式集群、云工作负载、LLM 训练以及 HPC 模拟。
为了分析程序在更多处理器下能加速多少,主要有两种
数学模型:
- Amdahl 定律 — 固定规模工作负载的性能
- Gustafson 定律 — 可扩展规模工作负载的性能
这两条定律并不矛盾,它们回答的是
不同的问题。
本教程涵盖推导、直觉、比较、实际应用场景,以及展示两条定律的 Python 绘图脚本。
1. 什么是加速比?
加速比衡量程序在
N 个处理器上运行速度提升多少:
[math]S(N) = \frac{T_1}{T_N}[/math]
如果程序在一个处理器上运行 10 秒,两处理器运行 5 秒,则加速比为:
[math]S(2) = \frac{10}{5} = 2[/math]
完美线性加速为:
[math]S(N) = N[/math]
但实际系统存在串行瓶颈,这正是 Amdahl 定律和 Gustafson 定律描述的内容。
2. Amdahl 定律(固定工作量)
2.1 直觉
Amdahl 假设:
设:
2.2 推导
一个处理器的运行时间:
[math]T_1 = T_s + T_p[/math]
定义:
[math]f = \frac{T_s}{T_1}[/math]
因此:
[math]T_s = fT_1[/math]
[math]T_p = (1 - f)T_1[/math]
N 个处理器的运行时间:
[math]T_N = fT_1 + \frac{(1 - f)T_1}{N}[/math]
加速比:
[math] S(N) = \frac{T_1}{T_N} = \frac{1}{f + \frac{1 - f}{N}} [/math]
其中 f 是串行工作比例,[math] 1-f [/math] 是可并行工作。Amdahl 公式也可以写成:
[math] S(N) = \frac{T_1}{T_N} = \frac{1}{(1-p) + \frac{p}{N}} [/math]
其中 [math] p=1-f [/math],[math] f=1-p [/math]
2.3 当 N → ∞ 时的极限
[math]S(\infty) = \frac{1}{f}[/math]
如果串行比例为 10%(f = 0.1):
[math]S_\infty = 10[/math]
即使
处理器无限,也无法超过该值。
2.4 Amdahl 定律的实际应用场景
Amdahl 适合优化固定任务的
延迟:
- GPU 内核优化固定张量大小
- 单次请求推理延迟降低
- 视频编码、压缩、排序
- 加速固定批量作业
- 数据库查询加速
3. Gustafson 定律(可扩展工作量)
3.1 直觉
Gustafson 反过来问:
“增加处理器,我能在相同时间内解决多大的问题?”
这反映了真实 HPC 工作负载:更多 CPU → 更高分辨率 → 更大模拟。
3.2 推导
假设程序在
N 个处理器上运行 1 个时间单位。
设:
可并行部分随处理器数量扩展,因此其运行时间保持与 N 成比例。
一个处理器的时间:
[math]T_1 = f + N(1 - f)[/math]
加速比:
[math]S(N) = f + N(1 - f)[/math]
Gustafson 公式的 “N 减” 形式:
[math]S(N) = N - (N - 1)f[/math]
或者,如果定义并行比例 [math]p = 1 - f[/math],公式也可写为:
[math]S(N) = f + N(1-f) = f + Np [/math]
“N 减” 形式用 p 表示:
[math] S(N) = N-(N-1)f = N - (N-1)(1-p) [/math]
3.3 解释
随着
N 增加,加速比趋近于:
[math]S(N) \approx N(1 - f)[/math]
对于小串行比例,几乎呈线性增长。
3.4 Gustafson 定律的实际应用场景
Gustafson 适用于
吞吐量扩展 或可增加问题规模的工作负载:
- 天气和气候模拟
- 粒子模拟、CFD、有限元分析
- LLM 训练:更多 GPU → 更长序列或更大模型
- 大数据分析(Spark, Dask, Flink)
- 蒙特卡洛模拟
4. Amdahl 定律 vs Gustafson 定律(比较表)
| 项目 | Amdahl | Gustafson |
| 工作负载 | 固定 | 随 N 扩展 |
| 目标 | 降低延迟 | 增加吞吐量 |
| 加速比上限 | 有界: [math]1/f[/math] | 近似线性: [math]N(1-f)[/math] |
| 悲观/乐观 | 悲观 | 乐观 |
| 应用场景 | 优化现有任务 | 扩展大规模工作量 |
5. 实际应用场景(综合视角)
Amdahl(延迟优化)
- 减少单次 LLM 查询推理时间
- 加速数据库 join 操作
- 固定张量 GPU 内核优化
- 视频编码(相同视频)
Gustafson(吞吐量 / 扩展)
- LLM 训练(扩展至更多 GPU)
- 高分辨率天气模型模拟
- 大数据 ETL 扩展
- 科学 HPC 工作负载
6. Python 绘图脚本(显示两条定律)
下面代码生成 Amdahl 与 Gustafson 加速比曲线图。
可以调整
f(串行比例)和处理器数量
N。
脚本绘制两条曲线在同一张图上。
包括部分 [math]f[/math] 的值,例如串行部分:
import numpy as np
import matplotlib.pyplot as plt
def amdahl_speedup(N, s):
return 1.0 / (s + (1 - s) / N)
def gustafson_speedup(N, s):
return s + (1 - s) * N
# Number of processors
N = np.arange(1, 65)
# Serial fractions to consider
Serial = [0.05, 0.1, 0.2, 0.3, 0.5, 0.8, 0.9, 1.0]
plt.figure(figsize=(10, 6))
for f in Serial:
plt.plot(N, amdahl_speedup(N, f), linestyle='-', label=f"Amdahl Serial={f}")
plt.plot(N, gustafson_speedup(N, f), linestyle='--', label=f"Gustafson Serial={f}")
plt.title("Amdahl's Law")
plt.xlabel("Number of Processors (N)")
plt.ylabel("Speedup")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.savefig("parallel-speedup-amdahl-vs-gustafson.png")
## plt.show()
下面是 Amdahl 与 Gustafson 曲线图示。
[caption id="attachment_70445" align="alignnone" width="1000"]

Amdahl 定律加速曲线[/caption]
[caption id="attachment_70446" align="alignnone" width="1000"]

Amdahl vs Gustafson 加速曲线[/caption]
[caption id="attachment_70447" align="alignnone" width="1000"]

Gustafson 定律加速曲线[/caption]
图示解读
- Amdahl 曲线迅速趋于平缓——受串行部分限制。
- Gustafson 曲线几乎线性上升——适用于可扩展工作负载。
- 串行比例
f 越高,两种模型差距越大。
结论
Amdahl 定律展示了固定工作负载下的并行
上限,适合延迟优化。Gustafson 定律展示了随工作负载扩展的并行
潜力。
- Amdahl 定律 → 固定规模工作负载 → 收益递减
- Gustafson 定律 → 可扩展工作负载 → 近似线性加速
- 结合使用理解硬件极限与算法特性
- Python 工具使可视化直观易懂
它们共同构成现代
并行系统性能分析基础,从 HPC 到 LLM 训练,再到 GPU 计算。
英文:
The Truth About Parallel Speedup: Amdahl’s Limits vs Gustafson’s Scaling
相关文章:
- 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
- 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
- 力扣刷题获得一件衣服奖励(Leetcode DCC Winner) 我每天都在力扣上刷题。力扣有国服和美服,我两边都会打卡。每天打卡可以获得积分,而积分可以兑换各种礼物,比如T恤、卫衣、水壶,甚至可以用来抵扣一个月的会员费用。 我从2018年8月开始刷题找工作(当时去伦敦面试亚马逊),从那时起每年都会续费会员,费用是159美元,相当于每月13.25美元。我觉得这是对自己最值得的投资。买了力扣会员,就会有动力刷题、思考,通过不断练习让自己熟能生巧,保持一定的竞争力。 到目前为止,我已经用积分兑换了7-8件力扣的衣服,其中有2-3件是卫衣。国内的礼物我都寄到姐姐家。 前不久,我收到了力扣的邮件,说我获得了DCC奖励。我也不知道为什么会获得这个奖,随手回了邮件。没多久,就收到了一件新版的力扣衬衫。 英文:Leetcode DCC Winner T-shirt 本文一共 291 个汉字, 你数一下对不对. 力扣刷题获得一件衣服奖励(Leetcode DCC Winner)....
- 第一次私校家长会: 原来家长比孩子还卷 前几天参加了娃的第一次家长会,和几位家长聊下来,真是个个都很厉害。不光孩子们卷,家长也一样卷,一眼望去基本都是 Dr/博士。娃还调侃我一句:“这有什么的,你不也是 Dr 吗?” 我心里默默想:还好没写学校名字,不然我这野鸡大学的头衔真拿不出手 😂。 私校里真是人才济济,乐器过 8 级的太常见了,卷得不得了。我还问过娃,是想当 big fish in a small pond...
- 如何通过二分查找搜索在区块链上根据时间戳定位区块? 前两天,我想查一下自己在 STEEM 区块链上一些重要记录对应的区块号,比如: 注册了我的账号 #4253590 成为见证人 #20190755 挖到我的第一个区块 #20390040 被孙宇晨大佬代理了 SP #41676911 收到一笔 DAO 收入...
- 花钱让人换汽车钥匙的电池真是个智商税 今天想不到我这么聪明的人也被人狠狠的收了一把智商税. 今天被收智商税了, 去 Tesco 换车钥匙的电池. . 才发现如此的简单, 那人直接2分钟搞定2个, 然后收了我25英镑. . 服了. . 我还以为很复杂…… 网友说 “1....
- 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...
- 和媳妇约个会: 剑桥的过桥米线 Dumpling Trees Dumpling Trees 是位于剑桥 Cherry Hilton 附近的一家中式餐厅,以云南特色的过桥米线闻名。店内环境宽敞整洁,菜品丰富,除了经典的米线,还有各类小吃、烧烤和炒饭,味道地道,分量十足。过桥米线的汤底鲜香,配料新鲜,包括鸡肉、鱿鱼、虾等食材,顾客可以自己下锅涮熟,既好吃又有趣。餐厅提供免费停车,但需在店内登记车牌,适合家庭聚餐或周末小聚。 剑桥 Cherry Hilton 那边有一家叫 Dumpling Trees 的过桥米线店,两三年前的冬天我们去吃过一次(剑桥 Dumpling Tree...