says a program can run on faster than the time required to execute its sequential sections. The Law is cast in the form of an equation that accounts for the time spent in the parallel (or vectorizable) and sequential parts of the code. The validity of this concept is easy to grasp. If a program is 80% parallelizable and 20% must be executed sequentially, the maximum reductionin execution time is by a factor of five (if the parallelizable code were run in zero time). Amdahl’s Law was thou ‘s law
ght to provide a practical limit to the number of processors that could beused profitably in a parallel computer system, estimated at around 100 processors. However, this analysis did not account for the fact that for many scientific applications, as the size of the problem being tackled increases, the sequential fraction of the work tends to decrease. Since the speed and memory of the processors in a parallel system enable a user to tac
kle bigger problems, Amdahl’s Law does not apply in these applications.
Moore’s Law, coined by Intel founder Gordon Moore, predicts that microprocessor performance will double approximately every 18 months’a calculation that has been true for 30 years but is expected to continue for only a few more years. Moore himself frequently warns that as physical limits are reached in the feature sizes and in the manufacturing techniques used for semiconductor components, it is not clear how to make faster components with today’s dominant technology. The current estimate is that these limits will be reached within 10 years.
Brooks’s law is a principle in software development which says that “adding manpower to a late software project makes it later”. It was coined by Fred Brooks in his 1975 book The Mythical Man-Month. The corollary of Brooks’s Law is that there is an incremental person who, when added to a project, makes it take more, not less time. Brooks adds that “Nine women can’t make a baby in one month”.
“The first 90 percent of the code accounts for the first 10 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.”—Tom Cargill, Bell Labs
That the total development time sums to 180% is a wry allusion to the notorious tendency of software development projects to significantly overrun their original schedules. It expresses both the rough allocation of time to easy and hard portions of a programming project and the cause of the lateness of many projects (that is, failure to anticipate the hard parts). In other words, it takes both more time and more coding than expected to make a project work.
The rule is attributed to Tom Cargill of Bell Labs and was made popular by Jon Bentley’s September 1985 “Programming Pearls” column in Communications of the ACM, in which it was titled the “Rule of Credibility”.
- Architecture – by Paul Messina
- The Price of Performance
- GPU vs. CPU Computing (nullptr.me)
- Why Amdahl’s law is often used incorrectly? (futurechips.org)
- Moore’s Law may soon be broken [Futurism] (io9.com)