如何计算执行时间(加速)

How to calculate execution time (speedup)

我在尝试计算加速比时被卡住了。所以给出的问题是:


问题 1

如果一个程序的 50% 增强了 2 倍,而其余 50% 增强了 4 倍,那么增强带来的整体加速是多少?提示:考虑增强前(未增强)程序在机器中的执行时间为T。然后求增强后的总执行时间T'。加速比为 T/T'.


我唯一知道的是加速 = 增强后 enhancement/execution 时间之前的执行时间。那么我可以假设答案是:

加速 = T/((50/100x1/2) + (50/100x1/4))

增强后的总执行时间= T + speedup

(50/100x1/2) 因为 50% 增强了 2 倍,同样达到 4 倍。


问题二

让我们假设一个程序的 (2/3)rd 可以通过设计中的某种 improvement/enhancement 无限快地执行 运行一个处理器。那么与未增强的(原始)机器相比,增强的处理器将 运行 快多少倍?

我可以假设它比 100/(2/3) = 150 快 150 倍吗

有什么想法吗?提前致谢。

让我们从问题 1 开始。

总时间为两半时间之和:

T = T1 + T2

然后,T1 增强了两倍。 T2 提高了 4 倍:

T' = T1' + T2'
   = T1 / 2 + T2 / 4

我们知道T1T2都是T的50%。所以:

T' = 0.5 * T / 2 + 0.5 * T / 4
   = 1/4 * T + 1/8 * T
   = 3/8 * T

speed-up是

T / T' = T / (3/8 T) = 8/3

问题二可以类似解:

T' = T1' + T2'

T1'减为0。T2T剩下的1/3。

T' = 1/3 T

speed-up是

T / T' = 3

因此,该程序的速度是以前的三倍(或快两倍)。