Revisiting Amdahl's Law
An anonymous reader writes "A German computer scientist is taking a fresh look at the 46-year old Amdahl's law, which took a first look at limitations in parallel computing with respect to serial computing. The fresh look considers software development models as a way to overcome parallel computing limitations. 'DEEP keeps the code parts of a simulation that can only be parallelized up to a concurrency of p = L on a Cluster Computer equipped with fast general purpose processors. The highly parallelizable parts of the simulation are run on a massively parallel Booster-system with a concurrency of p = H, H >> L. The booster is equipped with many-core Xeon Phi processors and connected by a 3D-torus network of sub-microsecond latency based on EXTOLL technology. The DEEP system software allows to dynamically distribute the tasks to the most appropriate parts of the hardware in order to achieve highest computational efficiency.' Amdahl's law has been revisited many times, most notably by John Gustafson."
The article makes little sense. The site of the DEEP project is more useful. It has the look of an EU publicly funded boondoggle. Those have a long history; see Plan Calcul, the 1966 plan to create a major European computing industry. That didn't do too well.
The trouble with supercomputers is that only governments buy them. When they do, they tend not to use them very effectively. The US has pork programs like the Alabama Supercomputer Center. One of their main activities is providing the censorware for Alabama schools.
There's something to be said for trying to come up with better ways of making sequential computation more parallel. But the track record of failures is discouraging. The game industry beat their head against the wall for five years trying to get the Cell processors in the PS3 to do useful work. Sony has given up; the PS4 is an ordinary shared-memory multiprocessor. So are all the XBox machines.
It's encouraging to see how much useful work people are getting out of GPUs, though.
Xeon Phi = unavailable vaporware, doled out in single unit quantities in order to discourage folks from porting big science applications to CUDA.
This neverending vaporware is certainly not news for nerds or stuff that matters.
SMBC
Amdahl's Law still stands. TFA is about changing the assumptions that Amdahl's Law is based on; instead of homogenous parallel processing, you stick a few big grunty processors in for the serial components of your task, and a huge pile of basic processors for the embaressingly parallel components. You're still limited by the fastest processing of non-parellel tasks, but by using a heterogenous mix of processors you're not wasting CPU time (and thus power and money) leaving processors idle.
Nuke nuke, submarine, allah, osama, obama, AES, encryption, DES, cracking, hacking crypto cryptanalysis hijack international diplomatic relations afghanistan iraq oil resources gas mining EVISCERATOR FASCINATOR HAVEQUICK SUITE A SUITE B MEDLEY, SHILLELAGH, BATON, SAVILLE, WALBURN, JOSEKI-1, LOFLAC, DRS, DNFQBT, ELLIPTIC CURVE P=NP bilderberg illuminati tavistock
Now that I've got your attention, NSA analyst who is reading this flagged message:
Do you think your illegal and invalid behavior will endure against universal karmic justice? Resign. Simply quit and get out with your soul still intact. YOUR choice to do what is right will cost you nothing and gain you everything.
All others who agree with this message need to repost. You have been asking what YOU can do? THIS. :yeah:
Every time I hear someone starting about how Amdahl's law is wrong it means one of two things:
1. They want your attention and their topic isn't interesting enough without resorting to controversial statements.
2. They don't understand Amdahls law.
Also, unless you're presenting a summary of the history of computing, you really shouldn't have a figure of Moore's law.
Some people handle this well. When they get to that point in their presentation they just say:
And this is the mandatory picture of Moore's law.
And skip to next slide.
In 2006 I submitted this (http://slashdot.org/comments.pl?sid=183461&cid=15153431):
"Researchers in the parallel processing community have been using Amdahl's Law and Gustafson's Law to obtain estimated speedups as measures of parallel program potential. In 1967, Amdahl's Law was used as an argument against massively parallel processing. Since 1988 Gustafson's Law has been used to justify massively parallel processing (MPP). Interestingly, a careful analysis reveals that these two laws are in fact identical. The well publicized arguments were resulted from misunderstandings of the nature of both laws.
This paper establishes the mathematical equivalence between Amdahl's Law and Gustafson's Law. We also focus on an often neglected prerequisite to applying the Amdahl's Law: the serial and parallel programs must compute the same total number of steps for the same input. There is a class of commonly used algorithms for which this prerequisite is hard to satisfy. For these algorithms, the law can be abused. A simple rule is provided to identify these algorithms.
We conclude that the use of the "serial percentage" concept in parallel performance evaluation is misleading. It has caused nearly three decades of confusion in the parallel processing community. This confusion disappears when processing times are used in the formulations. Therefore, we suggest that time-based formulations would be the most appropriate for parallel performance evaluation."
Maybe it will be helpful gain
I am sure that means something...
I haven't thought of anything clever to put here, but then again most of you haven't either.
You can't cheat Amdahl's law anymore than you can give birth in one month with nine women. The law is a rather simple idea similar to chemical kinetics, when you think about it. i.e. a rate limiting steps.
If you are interested in a non-mathematical description of Amdahl's law have a look at http://www.clustermonkey.net/Parallel-Programming/parallel-computing-101-the-lawnmower-law.html
HPC for Primates. Read Cluster Monkey
Ahmdal's Law only applies to individual algorithms. Ahmdal's Law only applies to individual algorithms. Ahmdal's Law only applies to individual algorithms.
Besides which, Ahmdal's law is an obvious truth unless you can make a process take negative time. All attempts to make Ahmdal's Law sound fancy or complicated are a disservice. All attempts to pigeonhole Ahmdal's Law into only applying to parallel design are a disservice. Any attempts to "revisit" are either fallacious or focus on algorithm changes, which Amdahl made no attempt to address.
Ahmdal's law in a nutshell: If you spend 10% of your time on X and 90% of your time on Y, you will never get more than a 1/.9 speedup by optimizing X, even if you manage to make X instantaneous. Another way to put it is that if Y takes 9 seconds, you are never going to get the process under 9 seconds by modifying X...
This most certainly does NOT break Amdahl's law. It simply partitions the problem to use the cheap gear for the embarrassingly parallel portion of the workload and the expensive gear for the harder to parallelize workload.
It necessarily cannot make a non-parallelizable portion (the serial part) run in parallel.
Note that what part of the problem is serial depends on the hardware. The lower the latency and the higher the bandwidth of the interconnect, the more of the problem you can get to run effectively in parallel. However, there comes a point where the problem cannot be decomposed further. The atoms that remain after that may all be run at once, but the individual atom will run serially. No matter what you do, 5*(2+3) can go no faster than serially adding and then multiplying (yes, you could do two multiplications in parallel and then add, but you gain nothing for it).
Amdahl came up with this law, to voice his scepticism about parallell computing. In favor of better uni-processors.
The law is revisited every day by anyone who needs to calculate the cost of software licenses.
Nowadays the cost of HW is miniscule, compared to the cost of for example off the shelf oracle databases that are based on how many cores a system has.
Smart money would hoard dual-core Xeon processors and oracle licenses while they are still available for these processors, as it can mean saving $100k's of dollars in licensing cost over the next few years.
Brannigan's Law.
Cretins love to quote Ahmdal's Law as the reason multi-core computing solutions are a waste of time. According to these cretins, no building site should ever employ more than 4 workers, because the overheads of using more people out-weighs the extra work they can do.
Ahmdal was a prize idiot working on the moronic idea of automatically converting ordinary single-thread algorithms into a parallel form that could execute faster on multiple computing cores. This was the kind of garbage promoted in the early days of so called super-computers. It allowed certain kinds of PhD employees to appear useful to the DoD.
What Ahmdal was actually excited about was DEPENDENCIES in co-dependent computing threads. Ahmdal came to the conclusion, already known to every toddler in the real world, that no task can useful be split into many multiple parts if those parts need to keep referencing each other while they are being executed.
Let me make this simpler for those of you thick enough to think that knowing things like Ahmdal's Law actually represents a 'skill' in computer science. Today the Xbox360 and PS3 are around 8+ years old. However, the games they run today are infinitely more sophisticated than when the hardware first appeared. Why? Because each platform actually had multiple computing units, both on the CPU and GPU side. As game programmers learnt to use each of these units to their maximum processing capability, games became more sophisticated.
So how did they 'avoid Ahmdal's Law? Well, as I said at the top, Ahmdal's Law is utter tosh in most circumstances clods think it applies in. Modern games use what is known as 'work unit' programming- a method EXACTLY analogous to the building site example I gave at the top. Essentially you break the process of producing each game frame down into as many self-contained computing units as possible. These units are designed to have limited and obvious dependencies with one another, just like different builders working on that site. These units are assigned to hardware computing cores as they become available.
The new consoles, the Xbox One and PS4, have EIGHT CPU cores and many hundreds of GPU processing elements. According to the dribblers that endless quote Ahmdal's Law, this is a complete waste of time. After all, Ahmdal's Law states that scaling after around 3.5 computing units makes extra computing units pointless. Now, this IS entirely true with non-core-aware computing on the Windows PC (which is the reason Intel has been so reluctant to go beyond 4 cores).
The Windows PC is actually a great place to explore Ahmdal's Law, but in a different way. Windows makes no attempt to run a single thread on multiple cores at the same time, as clods like Ahmdal tried to do. However, even so, the law still applies when your Windows session creates ever larger pools of threads from multiple applications that Windows distributes across all available x86 cores. Two x86 cores just about double one. The third core acts like 0.5 extra cores. The fourth core adds really very little. Cores beyond this ar a waste of time for the most part (AMD's major problem with its 8-core bulldozer/piledriver parts).
Of course, core aware software CAN, if it has the right kinds of algorithms, scale perfectly to more than 4 cores. Such software is vanishing rare, though.
Anyway, please stop quoting Ahmdal's Law- it really never had anything useful to say even when it was first coined, and today is used to purely troll forums where people are developing for modern multi-core computing systems.