@@ -118,10 +118,24 @@ void orte_plm_base_daemons_reported(int fd, short args, void *cbdata)
118118 orte_proc_t * dmn1 ;
119119 int i ;
120120
121- /* if we got back topology info from the first node, then we use
122- * it as the "standard" for all other nodes unless they sent
123- * back their own topology */
124- if (1 < orte_process_info .num_procs ) {
121+ /* if we are not launching, then we just assume that all
122+ * daemons share our topology */
123+ if (orte_do_not_launch ) {
124+ node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , 0 );
125+ t = node -> topology ;
126+ for (i = 1 ; i < orte_node_pool -> size ; i ++ ) {
127+ if (NULL == (node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , i ))) {
128+ continue ;
129+ }
130+ if (NULL == node -> topology ) {
131+ node -> topology = t ;
132+ }
133+ }
134+ } else if (1 < orte_process_info .num_procs ) {
135+ /* if we got back topology info from the first node, then we use
136+ * it as the "standard" for all other nodes unless they sent
137+ * back their own topology */
138+
125139 /* find daemon.vpid = 1 */
126140 jdata = orte_get_job_data_object (ORTE_PROC_MY_NAME -> jobid );
127141 if (NULL == (dmn1 = (orte_proc_t * )opal_pointer_array_get_item (jdata -> procs , 1 ))) {
@@ -151,17 +165,6 @@ void orte_plm_base_daemons_reported(int fd, short args, void *cbdata)
151165 node -> topology = t ;
152166 }
153167 }
154- } else if (orte_do_not_launch ) {
155- node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , 0 );
156- t = node -> topology ;
157- for (i = 1 ; i < orte_node_pool -> size ; i ++ ) {
158- if (NULL == (node = (orte_node_t * )opal_pointer_array_get_item (orte_node_pool , i ))) {
159- continue ;
160- }
161- if (NULL == node -> topology ) {
162- node -> topology = t ;
163- }
164- }
165168 }
166169
167170 /* if this is an unmanaged allocation, then set the default
0 commit comments