I was stuck when trying to calculate for the speedup. So the question given was:
Question 1
If 50% of a program is enhanced by 2 times and the rest 50% is enhanced by 4 times then what is the overall speedup due to the enhancements? Hints: Consider that the execution time of program in the machine before enhancement (without enhancement) is T. Then find the total execution time after the enhancements, T'. The speedup is T/T'.
The only thing I know is speedup = execution time before enhancement/execution time after enhancement. So can I assume the answer is:
Speedup = T/((50/100x1/2) + (50/100x1/4))
Total execution time after the enhancement = T + speedup
(50/100x1/2) because 50% was enhanced by 2 times and same goes to the 4 times.
Question 2
Let us hypothetically imagine that the execution of (2/3)rd of a program could be made to run infinitely fast by some kind of improvement/enhancement in the design of a processor. Then how many times the enhanced processor will run faster compared with the un-enhanced (original) machine?
Can I assume that it is 150 times faster as 100/(2/3) = 150
Any ideas? Thanks in advance.
11 Answer
Let's start with question 1.
The total time is the sum of the times for the two halves:
T = T1 + T2 Then, T1 is enhanced by a factor of two. T2 is improved by a factor of 4:
T' = T1' + T2' = T1 / 2 + T2 / 4 We know that both T1 and T2 are 50% of T. So:
T' = 0.5 * T / 2 + 0.5 * T / 4 = 1/4 * T + 1/8 * T = 3/8 * T The speed-up is
T / T' = T / (3/8 T) = 8/3 Question two can be solved similarly:
T' = T1' + T2' T1' is reduced to 0. T2 is the remaining 1/3 of T.
T' = 1/3 T The speed-up is
T / T' = 3 Hence, the program is three times as fast as before (or two times faster).
3