计算机 Architecture/Assembly,阿姆达尔定律

Computer Architecture/Assembly, Amdahl's Law

对于一个 70% 可并行化的程序,假设完美的负载平衡,在 4,8 和 16 路多处理器上,运行 相对于单处理器的加速比是多少。

所以我很难解决这个问题,我知道等式是:

Improved execution time = affected execution time/(improvement factor + unaffected execution time)

但我不确定我应该插入什么以及为什么我应该或我应该如何重写方程来解决问题

谢谢!

也许图片有帮助:

           +----------------+----------+----------+----------+----------+
1 core:    |     non-par.   |               parallelizable              |
           |     (1 - Q)    |                      Q                    |
           +----------------+----------+----------+----------+----------+
                            |
                    ||      |
                            |
           +----------------+----------+    --+
n cores:   |                |          |      |
           +----------------+----------+      |
                            |          |      |
                            +----------+      +-- n times
                            |          |      |
                            +----------+      |
                            |          |      |
                            +----------+    --+


time:      |- (1 - Q) * T  -|------------------ Q * T ------------------|
           |                | Q*T / n  | Q*T / n  | Q*T / n  | Q*T / n  |

因此,如果顺序时间为 T 并且分数 Q 是可并行化的,那么并行化到 n 个核心是 (1 − Q) * T + Q * T / n.

Wikipedia article 使用 Q = 1 − B)。

有趣的情况是 Q = 0,当根本没有加速并且算法在任何数字上花费时间 T核心数,并且 Q = 1 当算法完全并行并且需要时间 T / n n 个核心。