Nvidia has a compute model to push. of course they'll claim it's better than the alternatives, but is there any reason we have to keep seeing these claims parotted in the media without support?
the GPU model is inherently quite data-parallel. it's ideal for certain kinds of computation, but clearly not all. what's the amount of independent computation a thread performs before it needs to interact with other threads, or to operate on general-purpose memory? if threads are basically lockstep and operating on their own state, you will be happy with GPUs. if not - if your dataflow is more complicated, if your computation is more conditional, if your problem is so large it needs many machines, then GPUs simply won't suit, and you'll use MPI. whether the MPI is on BG-Q, the K machine or Intel MIC doesn't matter that much.
there is no future in which GPUs totally win, since what defines them is their restrictive data/compute model. an interesting question is whether such a restrictive model is necessary to achieve power-efficiency (and MIC is nothing less than Intel's bet against that proposition.)
A Book For All Reasons Bernard Cole1 Comment Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...