2

我一直在为我的计算机体系结构课程进行之前的考试,但我得到了一个不正确的答案,我如何计算可能的最佳加速?我知道关于可以加快多少程序的限制,我只是不确定论坛(他的问题是 b 部分)。任何帮助都将被赞成,非常感谢谢谢!

  1. (6 分)为了加速应用程序,提出了两个增强功能,加速比如下:
      Speedup 1 = 25
      Speedup 2 = 15

    增强 1 可用于 40% 的指令,增强 2 可用于 30% 的指令。两个增强不重叠。

    a) 如果同时应用这两种增强功能,加速是多少?

    b) 如果你不断改进这两个增强功能,你能达到的最佳加速是多少?

4

2 回答 2

0

与其试图记住一个公式,不如使用常识。想象一下,可加速代码的两个部分都可以无限加速:也就是说,根本不需要时间。会留下什么?需要多少时间?

于 2012-04-28T22:01:10.367 回答
0

t为总运行时间,然后:

(a)由于您不要求本节,因此我为将来的读者提供了完整的解决方案。
t' = modified run time = 0.4t / 25 + 0.3t / 15 + 0.3t = 0.336t,
因此,speedup = t/t' = t / 0.336t ~= 2.97

(b) 问题要求不断推进这些加速,因此您无法改进整个程序。然后,根据阿姆达尔定律,您可以获得的最佳加速受到连续的、不可改进的部分的限制。阿姆达尔定律说,最大加速将是1/SEQUENTIAL_PART你的情况下的顺序部分是什么?确保你明白为什么。

阿姆达尔定律的思想是,假设你可以将改进部分加速到无限加速,总加速仍然会受到未改进部分的限制。

于 2012-04-28T22:03:38.823 回答