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?
I think that was mine thinking error. The current one to one mapping
between the processor id and the (socket, core) tuple is perfectly fine.
What I mean with the NUMA node id, is to add the node id as an attribute
to the processor_id. That can be queried by the api. But to support SMT,
it would be necessary to extend it to a (socket,core,thread) tuple.
I have implement the node attribute and changed/extended the API as follow:
/* node_id can be NULL */
int PLPA_NAME(map_to_processor_id)
(int socket, int core, int *processor_id, int *node_id);
/* this name is not perfect, node_id is a attribute of processor_id */
int PLPA_NAME(map_to_node_id)(int processor_id, int *node_id);
int PLPA_NAME(max_node_id)(int *max_node_id);
The one think that is maybe missing is a function to query the number of
sockets in a NUMA node.
If you wich I can make a patch and post it.
Bert Wesarg
|