【发布时间】:2017-08-19 15:22:50
【问题描述】:
我有这个问题,我并不真正了解加速机制。
我有一个有 2 个执行阶段的程序。第一阶段占用 1 个时间单位,只能顺序执行。第二阶段需要 3 个时间单位来执行,但可以并行化。
如何计算可以达到的最大加速比?我不是在寻找答案,而是我需要计算它的公式。
【问题讨论】:
我有这个问题,我并不真正了解加速机制。
我有一个有 2 个执行阶段的程序。第一阶段占用 1 个时间单位,只能顺序执行。第二阶段需要 3 个时间单位来执行,但可以并行化。
如何计算可以达到的最大加速比?我不是在寻找答案,而是我需要计算它的公式。
【问题讨论】:
我试图找到答案,但我不确定它是否正确。
我使用的公式是:
Speedup = 1 / (sequentialPercentageTime - (parallelizablePercentageTime / Threads))
在可并行部分完全可并行的情况下,线程将为 3。
这意味着:
Speedup = 1 / (0.25 + (0.75/3))
Speedup = 1 / (0.25 + 0.25)
Speedup = 1 / 0.5
Speedup = 2
这有意义吗?
【讨论】: