Comment SOME THINGS ARE NOT PARALLELIZABLE (Score 1) 449
There are many common algorithms at the heart of important workloads that are not parallelizable. Consider sorting and shortest path algorithms that are important for managing data and route finding. The O(n-squared) versions can be parallelized (Bellman-Ford vs. Dijkstra's), but for any useful input size, the n-log-n version will be faster on a single core than the n-squared on a supercomputer (no hyperbole there). Even for workloads that do have a lot of parallelism, the inter-process communication often dominates. Except for benchmarks with no application to reality, there is always SOMETHING that serializes computation. Amdahl's law always bites you in the ass.
So much for parallel computing.
If you have many INDEPENDENT tasks, then sure, parallel computing is great. Web servers with many clients, graphics, etc. But that's for servers.
On end-user systems, the amount of thread-level parallelism is very limited. Unless you're compiling Gentoo, you're going to top out at a handful of cores. This is not limitation of the languages people use. It's a practical limitation of the parallelism inherent (or not) in the workloads people run, and it's a hard mathematical limitation of the optimal algorithms people use for common low-level tasks.
http://crd-legacy.lbl.gov/~dhbailey/dhbpapers/twelve-ways.pdf
http://www.davidhbailey.com/dhbpapers/inv3220-bailey.pdf
http://www.cs.binghamton.edu/~pmadden/pubs/dispelling-ieeedt-2013.pdf
There are some people in parallel computing who need to go back to school and learn computational complexity.