@@ -85,10 +85,24 @@ void orte_plm_base_daemons_reported(int fd, short args, void *cbdata)
8585 orte_proc_t * dmn1 ;
8686 int i ;
8787
88- /* if we got back topology info from the first node, then we use
89- * it as the "standard" for all other nodes unless they sent
90- * back their own topology */
91- if (1 < orte_process_info .num_procs ) {
88+ /* if we are not launching, then we just assume that all
89+ * daemons share our topology */
90+ if (orte_do_not_launch ) {
91+ node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , 0 );
92+ t = node -> topology ;
93+ for (i = 1 ; i < orte_node_pool -> size ; i ++ ) {
94+ if (NULL == (node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , i ))) {
95+ continue ;
96+ }
97+ if (NULL == node -> topology ) {
98+ node -> topology = t ;
99+ }
100+ }
101+ } else if (1 < orte_process_info .num_procs ) {
102+ /* if we got back topology info from the first node, then we use
103+ * it as the "standard" for all other nodes unless they sent
104+ * back their own topology */
105+
92106 /* find daemon.vpid = 1 */
93107 jdata = orte_get_job_data_object (ORTE_PROC_MY_NAME -> jobid );
94108 if (NULL == (dmn1 = (orte_proc_t * )opal_pointer_array_get_item (jdata -> procs , 1 ))) {
@@ -117,17 +131,6 @@ void orte_plm_base_daemons_reported(int fd, short args, void *cbdata)
117131 node -> topology = t ;
118132 }
119133 }
120- } else if (orte_do_not_launch ) {
121- node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , 0 );
122- t = node -> topology ;
123- for (i = 1 ; i < orte_node_pool -> size ; i ++ ) {
124- if (NULL == (node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , i ))) {
125- continue ;
126- }
127- if (NULL == node -> topology ) {
128- node -> topology = t ;
129- }
130- }
131134 }
132135
133136 /* if this is an unmanaged allocation, then set the default
0 commit comments