Brawny cores still beat wimpy cores, most of the time [pdf]
research.google.com
research.google.com
Hey, that's a pretty good analogy! 'When you have lots of small processors, it's like packing for a trip with a lot of small bags - where do you fit your skis?'
"Software development costs often dominate a company’s overall technical expenses, so forcing programmers to parallelize more code can cost more than we’d save on the hardware side."
There could be savings to be had by having a very smart scheduler that knows all about what kind of workload a given piece of task is by analyzing the code and dispatching it correctly. As you mentioned, though, that's not an easy problem to solve, and will also be a part of the software development cost.
From the programmer's point of view, that'll be yet another variable out of their control that may break the computing abstraction that makes these massive parallel machines possible.
It doesn't even have to be anything that fancy. It could be along the lines of "run the job a hundred times on each type of machine, and measure throughput, latency, and energy usage; then try to allocate jobs to the best kind of processor for it." That shouldn't break anything.
Or do you mean run small portions of a large job before deciding where to commit the rest?
Also, overall power usage isn't given much consideration, just response time.
Fascinating and useful read, thanks for posting.