我对确定性能增益和串行应用程序部分的阿姆达尔定律感到困惑,但未能弄清楚这一点。
已知如下:
S(N) = Speedup factor for (N) CPU's
N = Number of CPU's
f = The part of the program which is executed sequential
S(N) = N / ( 1 + f * ( N - 1 ) )
如果我有 4 个 CPU 和 3 倍的加速因子(性能增益)。f会是什么?
我猜:
S(N) = 3 (that's our performance gain using 4 CPU's)
N = 4
所以在公式中输入这些值:
3 = 4 / ( 1 + f * ( 4 - 1 ) )
我说 f = 0,11 是否正确?还是我需要将 S(N) 设置为 1(所以除以 3)?还是我做错了什么?