阿姆达尔定律
目录
阿姆达尔定律
在计算机体系结构中,阿姆达尔定律是一个公式,它给出了在固定工作负载下执行任务的理论延迟加速,这可以预期资源得到改善的系统。 它指出,通过优化系统的单个部分获得的整体性能改进受到实际使用改进部分的时间分数的限制。
阿姆达尔定律常用于并行计算,以预测使用多个处理器时的理论加速比。 例如,如果一个程序需要 20 小时才能使用单个线程完成,但程序的一个小时部分无法并行化,因此只能并行化剩余的 19 小时 (p = 0.95) 执行时间,那么无论 有多少线程专用于该程序的并行执行,最短执行时间不能少于一小时。
定义
阿姆达尔定律可以表述为:
S 延迟 ( s ) = 1 ( 1 − p ) + p s
在哪里
- 延迟是整个任务执行的理论加速;
- s 是受益于改进的系统资源的任务部分的加速;
- p是受益于改进资源的部分原来所占执行时间的比例。
表明整个任务执行的理论加速比随着系统资源的提高而增加,并且无论提高的幅度如何,理论加速比总是受限于无法从提高中受益的任务部分 .
阿姆达尔定律只适用于问题规模固定的情况。 在实践中,随着越来越多的计算资源可用,它们往往会被用于解决更大的问题(更大的数据集),并且花在可并行化部分的时间通常比固有的串行工作增长得更快。 在这种情况下,古斯塔夫森定律对并行性能给出了一个不太悲观和更现实的评估。
推导
与初始类似系统相比,资源得到改善的系统执行的任务可以分为两部分:
- 未受益于系统资源提升的部分;
- 受益于系统资源改进的部分。
一个例子是处理文件的计算机程序。 该程序的一部分可能会扫描磁盘目录并在内存中创建文件列表。 之后,程序的另一部分将每个文件传递给单独的线程进行处理。 扫描目录和创建文件列表的部分不能在并行计算机上加速,但处理文件的部分可以。
系统资源改善前整个任务的执行时间记为 T {displaystyle T} 。

它包括不会从资源改进中获益的部分的执行时间和将从中受益的部分的执行时间。 将从资源改进中获益的任务执行时间部分用 p {displaystyle p} 表示。 因此,与不会从中受益的部分有关的是 1 − p {displaystyle 1-p} 。
资源改善后加速因子 s {displaystyle s} 是受益于资源改善的部分的执行。 因此,未从中受益的部分的执行时间保持不变。