计算机体系结构/组装,Amdahl法律

时间:2015-06-24 09:07:08

标签: assembly computer-science computer-architecture

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

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

  

改进的执行时间=受影响的执行时间/(改进因素   +不受影响的执行时间)

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

谢谢!

1 个答案:

答案 0 :(得分:2)

也许图片会有所帮助:

           +----------------+----------+----------+----------+----------+
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 。< / p>

Wikipedia article使用 Q = 1 - B )。

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