Amdahl's law is sometimes given in another form that yields the speedup. Speedup is the measure of how a computer performs after some enhancement relative to how it performed previously. Thus, if some feature yields a speedup ratio of 2, performance with the enhancement is twice what it was before the enhancement. Hence, we can write
The earlier version of Amdahl's law was given as
4.19 [5] <§4.3> Suppose we enhance a computer to make all floating-point instructions run five times faster. Let's look at how speedup behaves when we incorporate the faster floating-point hardware. If the execution time of some benchmark before the floating-point enhancement is 10 seconds, what will the speedup be if half of the 10 seconds is spent executing floating-point instructions?
4.20 [10] <§4.3> We are looking for a benchmark to show off the new floating-point unit described in Exercise , and we want the overall benchmark to show a speedup of 3. One benchmark we are considering runs for 100 seconds with the old floating-point hardware. How much of the initial execution time would floating-point instructions have to account for to show an overall
speedup of 3 on this benchmark?
Speedup Performance after improvement
Performance before improvement
= ---------------------------------------------------------------------------------
Execution time before improvement
Execution time after improvement
= -------------------------------------------------------------------------------------- -
Execution time after improvement Execution time affected by improvement
Amount of improvement
= -------------------------------------------------------------------------------------------------
1 + Execution time unaffected
IMD 4.8-2 In More Depth
4.21 [10] <§4.3> Assuming that we enhance the floating-point unit as described in Exercise , plot the speedup obtained, versus the fraction of time in the original program spent doing floating-point operations, on a graph of the following form:
4.22 [5] <§4.3> You are going to enhance a computer, and there are two possible improvements: either make multiply instructions run four times faster than before, or make memory access instructions run two times faster than before. You repeatedly run a program that takes 100 seconds to execute. Of this time, 20% is used for multiplication, 50% for memory access instructions, and 30% for other tasks. What will the speedup be if you improve only multiplication? What will the speedup be if you improve only memory access? What will the speedup be if both improvements are made?
4.23 [5] <§4.3> You are going to change the program described in Exercise so that the percentages are not 20%, 50%, and 30% anymore. Assuming that none of the new percentages is 0, what sort of program would result in a tie (with
regard to speedup) between the two individual improvements? Provide both a formula and some examples.
4.24 [20] <§4.3> Amdahl's law is often written in terms of overall speedup as a function of two variables: the size of the enhancement (or amount of improvement) and the fraction of the original execution time that the enhanced feature is being used. Derive this form of the equation from the two equations above.
Speedup
0.25 0.50
Fraction of time spent doing floating-point operations in the original
0.75 1.00
5.0
4.0
3.0
2.0
1.0
0