# Computer Organization | Amdahl’s law and its proof

• Difficulty Level : Hard
• Last Updated : 03 Oct, 2022

It is named after computer scientist Gene Amdahl( a computer architect from IBM and Amdahl corporation) and was presented at the AFIPS Spring Joint Computer Conference in 1967. It is also known as Amdahl’s argument. It is a formula that gives the theoretical speedup in latency of the execution of a task at a fixed workload that can be expected of a system whose resources are improved. In other words, it is a formula used to find the maximum improvement possible by just improving a particular part of a system. It is often used in parallel computing to predict the theoretical speedup when using multiple processors. Speedup- Speedup is defined as the ratio of performance for the entire task using the enhancement and performance for the entire task without using the enhancement or speedup can be defined as the ratio of execution time for the entire task without using the enhancement and execution time for the entire task using the enhancement. If Pe is the performance for the entire task using the enhancement when possible, Pw is the performance for the entire task without using the enhancement, Ew is the execution time for the entire task without using the enhancement and Ee is the execution time for the entire task using the enhancement when possible then, Speedup = Pe/Pw or Speedup = Ew/Ee Amdahl’s law uses two factors to find speedup from some enhancement:

• Fraction enhanced – The fraction of the computation time in the original computer that can be converted to take advantage of the enhancement. For example- if 10 seconds of the execution time of a program that takes 40 seconds in total can use an enhancement, the fraction is 10/40. This obtained value is Fraction Enhanced. Fraction enhanced is always less than 1.
• Speedup enhanced – 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. For example – If the enhanced mode takes, say 3 seconds for a portion of the program, while it is 6 seconds in the original mode, the improvement is 6/3. This value is Speedup enhanced. Speedup Enhanced is always greater than 1.

The overall Speedup is the ratio of the execution time:- Proof:- Let Speedup be S, old execution time be T, new execution time be T’ , execution time that is taken by portion A(that will be enhanced) is t, execution time that is taken by portion A(after enhancing) is t’, execution time that is taken by portion that won’t be enhanced is tn, Fraction enhanced is f’, Speedup enhanced is S’. Now from the above equation, [Tex]T=t_{n}+ t  [/Tex][Tex]f’ = \frac{t}{T}  [/Tex][Tex]1-f’= 1- \frac{t}{t+t_{n}}  [/Tex][Tex]S’=\frac{t}{t’}  [/Tex][Tex]=\frac{T*f’}{S’}  [/Tex][Tex]=\frac{t’}{t_{n}+t}=\frac{f’}{S’}  [/Tex][Tex]= \frac{t_{n}+t}{t_{n}+t’}  [/Tex][Tex]Overall Speedup = \frac{1}{1 – Fraction Enhanced + ( Fraction Enhanced/Speedup Enhanced )}  [/Tex]Hence proved.

Say the for the fraction f when parallelized gave us the above formula.  Then what would be to find the maximum overall speedup of a system when we use parallelism? To compute this just put speedup enhanced –>(tending to) infinity.

Then the formula reduces to:

Overall Speedup(max) = 1/{1 – FractionEnhanced}

Of course this is just theoretical(ideal) and is not achievable in real life conditions.

Likewise, we can also think of the case where f = 1.

My Personal Notes arrow_drop_up
Related Articles