Home > Mobile >  Trying to understand Amdahl's Law
Trying to understand Amdahl's Law

Time:01-11

I am trying to answer a school assignment but i am getting confused to what the question is trying to ask.

A design optimization was applied to a computer system in order to increase the performance of a given execution mode by a factor of 10. The optimized mode is used 50% of the time, measured as a percentage of the execution time after the optimization has been applied.

(a) What is the global speedup value that is achieved with this optimization? Remind: Amdahl’s law defines the global speedup as a function of the optimized fraction before the optimization is applied. As a consequence, the 50% ratio cannot be directly used to evaluate this speedup value.

(b) What is the percentage of the original execution time that is affected by this optimization?

(c) How much should such execution mode be optimized in order to achieve a global speedup of 5? Can a global speedup of 12 be achieved? And 11?

When trying to calculate answer A) i came to the answer 1.81 ( 20/11 )

T' = 0.5 * T 0.5 * T/10 = T/2 (1/20)T = (11/20) * T

Speedup = T / T' = T / ((11/20) * T = 20/11 = 1.81

For me this answer makes sense but in the professor's solutions say otherwise:

(a) 5.5

(b) 91%

(c) Yes it can with an optimization by a factor of 25/3. No, because factor can’t be negative, so it is impossible. Also no, because ∞ optimization → impossible

I can't solve the other ones because i am confused with the first one.

Why is 5.5 the correct answer?

CodePudding user response:

Let's suppose a computer has two states A and B, and after whatever optimization, it spends 0 ≤ p ≤ 1 of its time in state A, and q = 1 - p of its time in state B. (So p is something like .5, or .27).

State A was sped up by a factor of X. State B was sped up by a factor of Y.

So before, it was spending time p * X q * Y time that it can now do in p q = 1 unit of time. So its speed up is p * X q * Y.

Applying this to the problem you were given: p = q = .5, X=10, Y=1 (no speedup). 10 * (.5) 1 * (.5) = 5.5

This easily generalizes.

CodePudding user response:

After optimization, time = x minutes optimized mode x minutes other = 2x.

Before optimization, time = 10x minutes unoptimized mode x minutes other = 11x.

Speedup = 11x/2x = 5.5

  •  Tags:  
  • Related