Limits to Speedup

Einstein also argued that the speed of light in a vacuum is the ultimate speed limit. As a result, no object with mass can be accelerated to the speed of light, although it can get arbitrarily close. Unfortunately, the amount of force required becomes greater and greater as the speed of the object gets closer to the speed of light. Enormous amounts of effort are required to achieve infinitesimal speed increases.

Gene Amdahl, a computing pioneer, suggested something similar for attempting to speed up applications.3 Some initial gains might result, but, at some point, near-infinite effort would be required to achieve infinitesimal speed increases. Amdahl’s line of thought hinges on the difference between parallel and serial processing. A classic serial task is making a baby. One woman takes nine months to do it, and no matter how many women (or men) you add to the project, the baby won’t arrive any sooner. Decorating the nursery, however, is highly parallelizable: Someone can be painting while someone is assembling the crib while someone else is placing toys on the shelves.

What Amdahl realized was that most applications are a mix of parallel and serial code. Although the parallel portion could be sped up, the serial portion could not be. In effect, no matter how many relatives are fixing up the nursery, the baby won’t arrive any more quickly. We might say that in the same way that Einstein observed that increasing physical force exhibited diminishing returns in ...

Get Cloudonomics: The Business Value of Cloud Computing, + Website now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.