If we want to use more than one node to speed up P, it will only affect P2 by a factor of s>1:
The speedup of the process P can be easily calculated as follows:
The ratio of the parallelizable portion of a process to its total is represented by b and is calculated as follows:
For example, in the preceding scenario, b = 8/10 = 0.8.
Simplifying these equations will give us Amdahl's law:
Here, we have the following:
- P is the overall process.
- b is the ratio of the parallelizable portion of P.
- s is the speedup achieved in the parallelizable portion of P.
Let's assume that we plan to run the process P on three parallel nodes:
- P1 is the sequential portion and cannot be reduced by using parallel nodes. It will remain at 2 seconds.
- P2 now takes 3 seconds instead of 9 seconds.
So, the total time taken by process P is reduced to 5 seconds, as shown in the following diagram:
In the preceding example, we can calculate the following:
- np = the number of processors = 3
- b = the parallel portion = 9/11 = 81.81%
- s = the speedup = 3
Now, let's look at a typical graph that explains Amdahl's law:
In the preceding diagram, we draw the graph between s and np for different values of b.