Re: How can I optimize a process on a NUMA architecture(x86-64 specifically)?

From: Martin J. Bligh
Date: Fri May 21 2004 - 13:32:59 EST


> So could process 0 run on processor 0, allocating local to processor 0, then run on processor 1, allocating local to processor 1, this way allocating to both processors? So over time process 0's allocations would be split up between both processors, defeating NUMA. The homenode concept + explicit CPU pinning seems useful in that they allow you to take advantage of NUMA better. Without these two things the kernel will just allocate on the currently running CPU whatever that may be when in fact a preference must be given to a CPU at some point, hopefully early on in the life of the process, in order to take advantage of NUMA.


For any given situation, you can come up with a scheduler mod that improves
things. The problem is making something generic that works well in most
cases.

I suggest: (1) read the archives. (2) Try implementing it if you still
don't beleive me ;-) The main problem with the homenode scheduler is that
you're more likely to end up in a situation where you're running "off-node"
and allocating stuff back from your "home-node". This stuff isn't
deterministic.

M.



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/