Is this in the trunk? Or in some release branch?

The daemon job has a map and nodes defined in it on the trunk, but not in earlier releases. If you want the HNP to find that info in an earlier release, you could instead cycle across the entries in orte_node_pool, looking for those that have a daemon assigned to them.

As for the daemons - no, they don't have a copy of the orte_node_t structures. Once the new state machine gets committed, then they will - but in the meantime, the only node-type information they have is in the orte_nidmap list. See the definition of orte_nid_t in orte/runtime/orte_globals.h.

On Mar 18, 2012, at 9:38 AM, Hugo Daniel Meyer wrote:


I've included a new list in the orte_node_t (because i need to have a copy of my data structure per daemon), it is an array of my own data structure, which i will fill with data about the processes in the job, and other data that interest me. 

For test purposes, i'm trying to command the table fill from the process with rank 0. This process send a message (send_buffer) to his HNP (using "process_command" of orted_comm.c). The HNP receives this command and try to obtain jdata of the daemons with the jobid of the  sent by the rank 0. 
 if (NULL == (jdata_orte = orte_get_job_data_object(jobid_orted)){
         // problem
I obtain the jdata_orte without problems, but, the jdata_orte->map is null, and of course, i cannot do something like:

node_from_map = (orte_node_t*)opal_pointer_array_get_item(jdata->map->nodes, i);

I need to obtain every node, and access my table to fill it. 

My question is, the daemons do not fill this information, that's why i get the jdata->map equal to NULL? If so, how can i obtain all the orte_node_t objects to fill them with the information that i need? As i understand, each daemon has a copy of the orte_node_t structures, is this so?

Thanks for the help.

devel mailing list