Hello,
Jeff Squyres wrote:
> On Apr 21, 2007, at 12:42 PM, Bert Wesarg wrote:
>
>> this sounds really great, and the tuple thing should be vary handy.
>> But what I miss is the NUMA nodes and SMT (aka hyper threading)
>> topology
>> information. To parse such a beast (aka quadruple, or maybe triple)
>> is one
>> thing but for portability and usability would be even greater.
>
> I'm not sure what you mean -- can you give a concrete example?
For the SMT level, its just an extension to a triple: (socket, core, thread).
Examples:
- binding to all sockets and cores, but only one thread per core
=> 'disable' SMT
- ...
I don't know exactly how the exported information look, but in the
cpuX/topology/ dirs are two more files (quote from
Docomentation/cputopology.txt):
> 3) /sys/devices/system/cpu/cpuX/topology/thread_siblings:
> represent the thread siblings to cpu X in the same core;
> 4) /sys/devices/system/cpu/cpuX/topology/core_siblings:
> represent the thread siblings to cpu X in the same physical package;
Most of the NUMA stuff is handled by the libnuma, as you possibly know.
But here are some examples:
- binding to all sockets, cores, and threads on node X
=> no internode memory traffic (with mempolicy local)
- binding to one socket per node
The NUMA topology can be retrieved by inspecting the
/sys/devices/system/node/nodeX dirs.
Bert
|