Amdahl定律

Amdahl定律是计算机体系结构和性能优化领域的一条基本定律,它定量描述了系统加速比受限于系统中可改进部分的比例。

公式

其中:

  • S:系统总体加速比
  • :可改进部分占原执行时间的比例
  • k:对可改进部分进行优化后带来的加速倍数
  • :不可改进部分的执行时间占比

含义解读

  1. 系统加速比受限于不可加速部分:即使将可改进部分的速度提升到极限(),系统加速比也最多为 。例如,如果程序中 90%的代码可以无限加速,那么最高加速比也只有 10倍 —— 因为剩下的 10%始终存在。

  2. 边际收益递减:当k逐渐增大时,S的增长越来越缓慢。将k从2提升到4的收益远大于从100提升到200的收益。

  3. 优化热点才有意义:必须首先找到执行时间中占比最大的部分(热点/bottleneck)进行优化,否则整体加速效果有限。

实际应用

  • 程序性能优化:优先分析profiling数据,找出热点函数/代码段
  • 并行计算:程序的串行部分制约着并行加速的上限
  • 系统设计:不能只优化单一部件,需要关注整体性能均衡

相关笔记

链接到