Record the bind_level recvd by the daemon for each job so it can be correctly sent to the procs. Add test in get_relative_locality to avoid descending into an infinite loop if the level is NODE (==0).
This commit was SVN r27252.
Этот коммит содержится в:
родитель
dd254cc202
Коммит
67f34c3be6
@ -1104,6 +1104,11 @@ opal_hwloc_locality_t opal_hwloc_base_get_relative_locality(hwloc_topology_t top
|
||||
return locality;
|
||||
}
|
||||
|
||||
/* if the binding level is NODE, then there is nothing to do */
|
||||
if (OPAL_HWLOC_NODE_LEVEL == level1) {
|
||||
return locality;
|
||||
}
|
||||
|
||||
lvl = level1;
|
||||
|
||||
/* we know that the objects are bound to the same level, so
|
||||
|
@ -974,6 +974,13 @@ int orte_util_decode_daemon_pidmap(opal_byte_object_t *bo)
|
||||
opal_pointer_array_set_item(orte_job_data, ORTE_LOCAL_JOBID(jobid), jdata);
|
||||
}
|
||||
|
||||
/* setup the map */
|
||||
map = jdata->map;
|
||||
if (NULL == map) {
|
||||
jdata->map = OBJ_NEW(orte_job_map_t);
|
||||
map = jdata->map;
|
||||
}
|
||||
|
||||
/* unpack the number of procs */
|
||||
n=1;
|
||||
if (ORTE_SUCCESS != (rc = opal_dss.unpack(&buf, &num_procs, &n, ORTE_VPID))) {
|
||||
@ -989,14 +996,8 @@ int orte_util_decode_daemon_pidmap(opal_byte_object_t *bo)
|
||||
ORTE_ERROR_LOG(rc);
|
||||
goto cleanup;
|
||||
}
|
||||
jdata->map->bind_level = bind_level;
|
||||
#endif
|
||||
/* setup the map */
|
||||
map = jdata->map;
|
||||
if (NULL == map) {
|
||||
jdata->map = OBJ_NEW(orte_job_map_t);
|
||||
map = jdata->map;
|
||||
}
|
||||
|
||||
/* cycle thru the data until we hit an INVALID vpid indicating
|
||||
* all data for this job has been read
|
||||
*/
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user