Cores Enough to Compel Parallel Programming
When will there be enough cores to make coding for concurrency worthwhile for you?Recently, someone excited told me "Wow - everyone I talked with about their new use of parallel programming on a multicore system tells me they get significant performance gains - 50% or more, and 2X was common!"
Yes, I have the same experience. If you are skeptical, you are worrying that I'm saying everyone will see this benefit now - and that is clearly not true.
There is a cause and effect thing here - parallel programming is worth the effort if you see results. Those that found it worthwhile, do the work and report the results! A 2X speed-up on a key part of a program, is often worthwhile. Also, you might find a feature is doable whereas it was not previously - and that make the effort worthwhile.
You can never say "Parallel Programming is worthwhile for everyone." However, as the core count increases - the opportunity for 2X, or new features, continues to grow.
If you get 2X on two cores vs. 1X on one core, that is "perfect scaling." If you get 2X on 4 cores, that's not too bad. Someone in high performance computing (HPC) will probably tell you that 2X on 16 cores doesn't seem very impressive. That's because efficiency is very important in HPC.
Efficiency of this type, has never been the primary concern for non-HPC programming. Programmer productivity is much more important in general.
This begs the question, "If 2X is compelling for you, do you really care how many cores it takes?"
Assuming the answer is 'no' - we get to the question, "When will there be enough cores to make coding for concurrency worthwhile for you?"