0

I am reading through "Computer Architechture: A Quantitative Approach 5th ed" and am trying to grasp Amdahl's law, when it comes to speeding up portions of the system i.e. speed up a certain percentage of the system by a certain percentage . It is easy to understand when you are talking about speeding up a system by a certain factor e.g. a system that is 10 times faster.

To give a concrete example:

You have a system, where a certain sub-system accounts for 70% of the execution time and you wish to develop a speedup which will improve the latency of this sub-system by 50%.

From the book, Amdahl's Law is listed as:

SpeedupOverall = 1/((1-FractionEnhanced)+(FractionEnhanced/SpeedupEnhanced))

I gather from the explanation of the Fractional Enhancement ("The fraction of the computation time in the original computer that can be converted to take advantage of the enhancement"), that: FractionEnhanced = 70% or 0.7.

My question here is how to reflect the speedup. The book lists it as "The improvement gained by the enhanced execution mode, that is, how much faster the task would run if the enhanced mode were used for the entire program". The book says that this would be the time that the original mode over the improvement time; in this case 70/50, or 1.4. However, where my confusion comes in is with this website, where by examining the java applet code, it seems that speedup enhanced would be 1 + the percentage speedup, or 1.5. Maybe I am overthinking this as well, but I am also thinking how it could also be .7/(0.7 - 0.7*0.5), or 2 (since, 70%*50% is the actual latency reduction, in terms of the actual sub-sbstem, right?).

Working the math out, we get the following answers:

  1. For SpeedupEnhanced = 70/50 = 1.4: SpeedupOverall = 1/((1-0.7)+ .7/1.4) = 1.25

  2. For SpeedupEnhanced = 1+0.5 = 1.5: SpeedupOverall = 1/((1-0.7)+ .7/1.5) = 1.3043

  3. For SpeedupEnhanced = 0.7/(0.7-0.7*0.5) = 2: SpeedupOverall = 1/((1-0.7)+.7/2) = 1.54

Which one would be the correct speedup here? The second seems to make sense to me, but the book seems to imply that the first is correct. Any help by way of references or explanations as to how to grasp this type of speedup would be greatly appreciated.

4

1 回答 1

1

第三个答案(1.54 倍总加速)是正确的,因为“加速增强”是一个无量纲值,仅表征增强的部分执行时间变化(以“x”为单位)。请注意,在您的情况下,加速增强仅等于 70/(70*0.5)。

总体而言,阿姆达尔定律和古斯塔夫森定律的解释存在很多可能的混淆。令人惊讶的是,好的入门阅读是关于 amdahl 法的维基百科页面。它会特别将您重新映射到更传统的解释,强调并行计算和处理器数量,而不是“增强的加速”概念。可以在 Gustafson 教授的参考页面上找到更深入和详尽的阅读,他“发明”了替代“乐观法则”。看完所有资料,你会发现“加速”这个概念更加有趣和明确。

于 2013-09-05T21:16:38.347 回答