Amdahl定律
Amdahl定律是计算机体系结构和性能优化领域的一条基本定律,它定量描述了系统加速比受限于系统中可改进部分的比例。
公式
其中:
- S:系统总体加速比
- :可改进部分占原执行时间的比例
- k:对可改进部分进行优化后带来的加速倍数
- :不可改进部分的执行时间占比
含义解读
-
系统加速比受限于不可加速部分:即使将可改进部分的速度提升到极限(),系统加速比也最多为 。例如,如果程序中 90%的代码可以无限加速,那么最高加速比也只有 10倍 —— 因为剩下的 10%始终存在。
-
边际收益递减:当k逐渐增大时,S的增长越来越缓慢。将k从2提升到4的收益远大于从100提升到200的收益。
-
优化热点才有意义:必须首先找到执行时间中占比最大的部分(热点/bottleneck)进行优化,否则整体加速效果有限。
实际应用
- 程序性能优化:优先分析profiling数据,找出热点函数/代码段
- 并行计算:程序的串行部分制约着并行加速的上限
- 系统设计:不能只优化单一部件,需要关注整体性能均衡
相关笔记
链接到
- 上一个知识点:1.1 抽象层次结构
- 下一个知识点:无(本章最后一个知识点)