"C++ Concurrency in Action"年的阿姆达尔定律



我正在写一篇关于多线程的理学学士论文,参考书目是Anthony Williams的《c++ Concurrency in Action》。它在使用std线程时帮助了我很多,但是有一件事我不确定。阿姆达尔定律的公式为

p (N) = 1/(f + (1 - f)/N)

而我找到的所有其他来源都给出:

p (N) = 1/(1 - f + f/N)

在这两种情况下,p是性能增益因子,f是"串行"的常数分数,独立部分在[0,1]中,N是处理器数(自然数)。

即使函数的水平渐近线在第一种情况下是1/f,在第二种情况下是1/(1 - f),这是一个错误还是我理解错了?

第一个f为串行码的分数,第二个f为并行码的分数。

如果将(1-f)代入任意一个方程中的f,就会得到另一个

最新更新