阿姆达尔定律及其在计算机组织中的证明2024 年 11 月 15 日 | 阅读 5 分钟 什么是 Amdahl's Law?![]() Amdahl's Law 是计算机体系结构中的一个原理,它描述了一个程序在部分并行化时的潜在加速比。该定律由 Gene Amdahl 于 1967 年提出。 根据 Amdahl's Law,程序的加速比由程序中无法并行化的部分决定。数学上,Amdahl's Law 可以表示为 其中 加速比是并行化程序所实现的性能提升。 这里 P 代表程序的比例。 这里 N 是可用的处理器或计算资源的数量。 例如,如果一个程序有 20% 的部分是顺序的且无法并行化,那么最大理论加速比将是 5 倍 (1 / (0.2 + (0.8 / N)))。处理器数量与加速比成反比。 在并行化的情况下,Amdahl's Law 是什么?Amdahl's Law 的并行化侧重于可并行部分 (P) 和处理器数量 (N) 的影响。 该定律表明,程序的非并行化部分限制了加速比。它不取决于处理器的数量。随着处理器数量的增加,非并行化部分的影响变得相对更重要。 根据 Amdahl's Law,加速比与程序的非并行化部分成反比。随着非并行化部分减少,加速的潜力增加。 例如,如果一个程序 80% 是可并行化的,20% 是顺序的,那么最大理论加速比将是 加速比 = 1 / ((1 - 0.8) + (0.8 / N)) 该公式表明,随着处理器数量 (N) 的增加,加速比将受程序顺序部分的限制 (1 - 0.8 = 0.2)。 Amdahl's Law 的优点Amdahl's Law 有几个优点。以下是使用 Amdahl's Law 的一些优点:
Amdahl's Law 的缺点以下是 Amdahl's Law 的一些缺点:
Amdahl's Law 和 Gustafson's Law 的区别?Amdahl's Law 和 Gustafson's Law 是描述并行计算系统可伸缩性的两个不同原理,但它们都有不同的方面和不同的假设。 Amdahl's Law 由 Gene Amdahl 于 1967 年提出,它解决了程序在部分并行化时的潜在加速比。 John L. Gustafson 在 1988 年提出了一个定律,后来被称为 Gustafson's Law。Gustafson's Law 使用“扩展效率”的概念而不是加速比来表示。扩展效率的公式是 E = 1 - f + fN Amdahl's Law 的推导为了推导 Amdahl's Law,我们将首先考虑一个程序,其中有 "f" 部分代码是顺序的,而 "1 - f" 部分代码可以并行执行。假设有 "N" 个处理元素或线程。
T = Ts + Tp
Tp' = Tp / N
T' = Ts + Tp' = Ts + Tp / N
S = T / T' = (Ts + Tp) / (Ts + Tp / N)
S = (1 + Tp / Ts) / (1 + Tp / (N * Ts))
S = (1 + (Tp / Ts)) / (1 + (Tp / (N * Ts)))
Tp / Ts = α
S = (1 + α) / (1 + α / N)
S = N / (N * (1 + α / N)) = 1 / (1 + α / N)
S = 1 / (f + (1 - f) / N) 这是 Amdahl's Law 的最终推导。该公式表示当在 "N" 个处理元素上执行具有 "f" 部分顺序代码和 "1 - f" 部分可并行代码的程序时,可以实现的最大加速比。 |
我们请求您订阅我们的新闻通讯以获取最新更新。