Handle the case of nodes that do not report cores, and thus our default binding policy will fail even though binding is supported by defaulting to not binding on those nodes.
Thanks to Paul Hargrove for reporting the problem on NetBSD. cmr=v1.7.4:reviewer=jsquyres:subject=Handle the case of nodes that do not report cores This commit was SVN r30180.
Этот коммит содержится в:
родитель
f179f2086b
Коммит
7e4748a0f1
@ -150,6 +150,16 @@ static int bind_upwards(orte_job_t *jdata,
|
||||
}
|
||||
}
|
||||
|
||||
/* some systems do not report cores, and so we can get a situation where our
|
||||
* default binding policy will fail for no necessary reason. So if we are
|
||||
* computing a binding due to our default policy, and no cores are found
|
||||
* on this node, just silently skip it - we will not bind
|
||||
*/
|
||||
if (!(OPAL_BIND_GIVEN & opal_hwloc_binding_policy) &&
|
||||
HWLOC_TYPE_DEPTH_UNKNOWN == hwloc_get_type_depth(node->topology, HWLOC_OBJ_CORE)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* we share topologies in order
|
||||
* to save space, so we need to reset the usage info to reflect
|
||||
* our own current state
|
||||
@ -314,6 +324,16 @@ static int bind_downwards(orte_job_t *jdata,
|
||||
}
|
||||
}
|
||||
|
||||
/* some systems do not report cores, and so we can get a situation where our
|
||||
* default binding policy will fail for no necessary reason. So if we are
|
||||
* computing a binding due to our default policy, and no cores are found
|
||||
* on this node, just silently skip it - we will not bind
|
||||
*/
|
||||
if (!(OPAL_BIND_GIVEN & opal_hwloc_binding_policy) &&
|
||||
HWLOC_TYPE_DEPTH_UNKNOWN == hwloc_get_type_depth(node->topology, HWLOC_OBJ_CORE)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* we share topologies in order
|
||||
* to save space, so we need to reset the usage info to reflect
|
||||
* our own current state
|
||||
@ -480,6 +500,16 @@ static int bind_in_place(orte_job_t *jdata,
|
||||
}
|
||||
}
|
||||
|
||||
/* some systems do not report cores, and so we can get a situation where our
|
||||
* default binding policy will fail for no necessary reason. So if we are
|
||||
* computing a binding due to our default policy, and no cores are found
|
||||
* on this node, just silently skip it - we will not bind
|
||||
*/
|
||||
if (!(OPAL_BIND_GIVEN & opal_hwloc_binding_policy) &&
|
||||
HWLOC_TYPE_DEPTH_UNKNOWN == hwloc_get_type_depth(node->topology, HWLOC_OBJ_CORE)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* we share topologies in order
|
||||
* to save space, so we need to reset the usage info to reflect
|
||||
* our own current state
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user