>>25
The issue is that not every problem can be easily parallelized. For some problems, it is as simple as splitting up the work arbitrarily among N workers and then have them all report back when they are done. Then there are other things that are innately sequential. Like computing, f(f(f(f(f(x)))). Each application of f cannot be performed until the input parameter is known. So, if you were to draw a dependency graph of the computation, you'd get a single path where each node is an application of f, with x at the end.