1
1

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.
Этот коммит содержится в:
Ralph Castain 2012-09-06 20:50:07 +00:00
родитель dd254cc202
Коммит 67f34c3be6
2 изменённых файлов: 13 добавлений и 7 удалений

Просмотреть файл

@ -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
*/