Merge pull request #1540 from rhc54/topic/map
Fix map-by node and do-not-launch
Этот коммит содержится в:
Коммит
e500ea2c8c
@ -118,10 +118,24 @@ void orte_plm_base_daemons_reported(int fd, short args, void *cbdata)
|
||||
orte_proc_t *dmn1;
|
||||
int i;
|
||||
|
||||
/* if we got back topology info from the first node, then we use
|
||||
* it as the "standard" for all other nodes unless they sent
|
||||
* back their own topology */
|
||||
if (1 < orte_process_info.num_procs) {
|
||||
/* if we are not launching, then we just assume that all
|
||||
* daemons share our topology */
|
||||
if (orte_do_not_launch) {
|
||||
node = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, 0);
|
||||
t = node->topology;
|
||||
for (i=1; i < orte_node_pool->size; i++) {
|
||||
if (NULL == (node = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, i))) {
|
||||
continue;
|
||||
}
|
||||
if (NULL == node->topology) {
|
||||
node->topology = t;
|
||||
}
|
||||
}
|
||||
} else if (1 < orte_process_info.num_procs) {
|
||||
/* if we got back topology info from the first node, then we use
|
||||
* it as the "standard" for all other nodes unless they sent
|
||||
* back their own topology */
|
||||
|
||||
/* find daemon.vpid = 1 */
|
||||
jdata = orte_get_job_data_object(ORTE_PROC_MY_NAME->jobid);
|
||||
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)
|
||||
node->topology = t;
|
||||
}
|
||||
}
|
||||
} else if (orte_do_not_launch) {
|
||||
node = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, 0);
|
||||
t = node->topology;
|
||||
for (i=1; i < orte_node_pool->size; i++) {
|
||||
if (NULL == (node = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, i))) {
|
||||
continue;
|
||||
}
|
||||
if (NULL == node->topology) {
|
||||
node->topology = t;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* if this is an unmanaged allocation, then set the default
|
||||
|
@ -136,8 +136,7 @@ void orte_rmaps_base_map_job(int fd, short args, void *cbdata)
|
||||
opal_output_verbose(5, orte_rmaps_base_framework.framework_output,
|
||||
"mca:rmaps: nprocs %s",
|
||||
ORTE_VPID_PRINT(nprocs));
|
||||
if (ORTE_MAPPING_GIVEN & ORTE_GET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping) &&
|
||||
ORTE_MAPPING_BYNODE != ORTE_GET_MAPPING_POLICY(orte_rmaps_base.mapping)) {
|
||||
if (ORTE_MAPPING_GIVEN & ORTE_GET_MAPPING_DIRECTIVE(orte_rmaps_base.mapping)) {
|
||||
opal_output_verbose(5, orte_rmaps_base_framework.framework_output,
|
||||
"mca:rmaps mapping given - using default");
|
||||
map->mapping = orte_rmaps_base.mapping;
|
||||
@ -292,8 +291,6 @@ void orte_rmaps_base_map_job(int fd, short args, void *cbdata)
|
||||
"mca:rmaps[%d] binding not given - using bynuma", __LINE__);
|
||||
OPAL_SET_DEFAULT_BINDING_POLICY(jdata->map->binding, OPAL_BIND_TO_NUMA);
|
||||
}
|
||||
} else if (ORTE_MAPPING_BYNODE == mpol || ORTE_MAPPING_BYBOARD == mpol) {
|
||||
jdata->map->binding = OPAL_BIND_TO_NONE;
|
||||
} else if (nprocs <= 2) {
|
||||
/* if nothing was specified, then we default to a policy
|
||||
* based on number of procs and cpus_per_rank */
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user