Bryan O'Sullivan wrote:
On Thu, Mar 19, 2009 at 10:52 PM, Manuel M T Chakravarty <[email protected] <mailto:[email protected]>> wrote:The comment above setThreadAffinity() says,// Schedules the thread to run on CPU n of m. m may be less than the // number of physical CPUs, in which case, the thread will be allowed // to run on CPU n, n+m, n+2m etc. I am not convinced that this is a good plan. If m is less than n, some threads can hop between CPUs and so invalidate their L2 cache repeatedly.Even worse, on a NUMA system, you can end up pinning a thread to a CPU that is physically distant from its memory, which imposes a substantial performance penalty (even on Opteron systems). I'd be very very wary of setting thread affinity by hand.
That's why it's optional. Simon _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
