You are viewing paulmck

Previous Entry | Next Entry

Parallel Programming: Amdahl's Anguish

SequentialCaveman
The initialization portion of a kernel or server application may be amortized over an arbitrarily large runtime, limited only by the robustness of the kernel or application. If the runtime portion of that kernel or application is fully parallel, Amdahl's law gives a speedup as follows:

S = 1 / (1 - P)

As the runtime of the kernel/application increases, the parallelizable fraction P approaches
1, causing S to approach infinity, for perfect speedup.

We obtain the same result from Gustafson's law:

S(P) = P - α (P - 1)

As the runtime increases, the non-parallelizable portion of the program α approaches zero, so that the speedup S(P) approaches the number of processors P, which indicates perfect linear scalability.

What do you do if Amdahl's law says your program is perfect?

Comments

( 2 comments )
(Anonymous)
Dec. 29th, 2009 12:03 am (UTC)
Perfect parallelism? Add more processors!
paulmck
Dec. 29th, 2009 01:05 am (UTC)
As always, it depends...
After all, scalability is only part of the story.
( 2 comments )