Computer Organization | Amdahl’s law and its proof



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 which 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 entire task using the enhancement when possible, Pw is the performance for entire task without using the enhancement, Ew is the execution time for entire task without using the enhancement and Ee is the execution time for 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 wont be enhanced is “tn”, Fraction enhanced is “f'”, Speedup enhanced is “S'”.

    Now from the above equation,

    S = T/T’
    T = tn + t
    T’ = tn + t’
    f’ = t/T
    = t/(t + tn)
    1 – f’ = 1 – (t/(t + tn))
    = tn/(t + tn)

    S’ = t/t’
    t’ = t/s’
    = (T * f’)/S’
    = ((tn + t) * f’)/S’
    t’/(tn + t) = f’/S’

    S = T/T’
    = (tn + t)/(tn + t’)
    = 1/((tn + t’)/(tn + t’))
    = 1/((tn/(tn + t)) + (t’/(tn + t))

    S = 1/(1 – f’ + (f’/S’))

    Overall Speedup = 1/(1 – fraction enhanced + ( fraction enhanced/Speedup enhanced ))
    Hence proved.



    My Personal Notes arrow_drop_up

    Check out this Author's contributed articles.

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.