|
 |
On 19/11/2010 02:22 AM, Nicolas Alvarez wrote:
> Invisible wrote:
>> Presumably it's hard to balance work evenly. Then there's the problem of
>> cache coherence if you try to do too much balancing. (I.e., if the data
>> you want is in the cache on core X, trying to process that data from
>> core Y is *slower* than not using an extra thread.)
>
> Not only cache. With increasing numbers of cores, you will have that problem
> with main memory too; read up on NUMA.
Well, yes, with multiple cores and multiple levels of caching, your
computer system basically ends up being NUMA in all but name anyway. The
difference is, in a real NUMA system, the system doesn't *pretend* that
it offers uniform access time. And that means you can control where
stuff gets put to optimise access speed.
Now, optimising data placement is a seriously hard problem, I would
imagine. (Somebody once wrote "a supercomputer is a device for turning a
compute-bound problem into an I/O-bound problem".)
Post a reply to this message
|
 |