Over the past few months I’ve read lots of great articles on multicore software development. In this blog I share a list of my top 10 favorite quotes.
“For over a decade prophets have voiced the contention that the organization of a single computer has reached its limits and that truly significant advances can be made only by interconnection of a multiplicity of computers.” Gene Amdahl in 1967.
“The way the processor industry is going, is to add more and more cores, but nobody knows how to program those things. I mean, two, yeah; four, not really; eight, forget it.” Steve Jobs, Apple.
“I decided long ago to stick to what I know best. Other people understand parallel machines much better than I do; programmers should listen to them, not me, for guidance on how to deal with simultaneity.” Donald Knuth, professor emeritus at Stanford.
“Everybody who learns concurrency thinks they understand it, ends up finding mysterious races they thought weren’t possible, and discovers that they didn’t actually understand it yet after all.” Herb Sutter, chair of the ISO C++ standards committee, Microsoft.
“Redesigning your application to run multithreaded on a multicore machine is a little like learning to swim by jumping into the deep end.” Herb Sutter, chair of the ISO C++ standards committee, Microsoft.
“There are other pitfalls; concurrent code that is completely safe but isn’t any faster than it was on a single-core machine, typically because the threads aren’t independent enough and share a dependency on a single resource.” Herb Sutter, chair of the ISO C++ standards committee, Microsoft.
“My hypothesis is that we can solve [the software crisis in parallel computing], but only if we work from the algorithm down to the hardware -- not the traditional hardware first mentality.” Tim Mattson, principal engineer at Intel.
“We stand at the threshold of a many core world. The hardware community is ready to cross this threshold. The parallel software community is not.” Tim Mattson, principal engineer at Intel.
“The wall is there. We probably won't have any more products without multicore processors [but] we see a lot of problems in parallel programming." Alex Bachmutsky, chief architect at Nokia Siemens Networks.
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” Brian Kernighan, professor at Princeton University.
The conclusion? Industry luminaries view our industry the same as we do. Firstly, multicore is here, here to stay, and rapidly growing. Secondly, programming multicore architectures is tough, too hard to do by hand. Who could build a home without a good toolbox? It’s the same for parallel programming; you need the proper equipment.