Amdahl 定律

系统整体加速比受串行部分占比限制:即使并行部分无限加速,整体上限仍是 1/串行占比;用于识别优化收益的天花板。

公式

公式
加速比上限 = 1 / s(s 为串行部分占比)

例:串行 20% → 整体加速比上限 5 倍
先削减串行段(锁、单点、串行队列)收益更明显

串行占比与理论上限

串行占比 s加速上限 1/s
5%20 倍
10%10 倍
20%5 倍
50%2 倍
扩展规模场景参考 Gustafson 定律:扩大问题规模时并行占比上升,收益可高于 Amdahl 上限
落地偏差真实系统还要计入通信、调度与争用开销,实测收益通常低于理论值
  • 拆分测量:先用剖析工具统计各段耗时占比
  • 识别串行:锁、单点服务、串行队列与共享争用
  • 先削串行:串行段缩小后再投入并行优化
  • 复测验证:每轮优化后复测占比与整体加速比
  • 收益核算:并行段间的同步与合并开销计入总账
测量建议占比按剖析采样或埋点实测得出,不用代码行数或主观估计
延伸模型并发度更高时参考通用可扩展性定律(USL),把争用与一致性延迟一并计入
汇报口径给结论时同时给出当前占比、理论上限与下一步削减串行的计划
优化前先量化各段占比,避免投入大量资源在并行段却收益有限。

易错点

  • 盲目增加并行度,加速比仍被串行段卡住
  • 未测量占比就优化,收益无法验证

数据来源与参考

  • 《计算机体系结构:量化研究方法》(Hennessy & Patterson)
  • Gene Amdahl(1967)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌