1
1

Merge pull request #1540 from rhc54/topic/map

Fix map-by node and do-not-launch
Этот коммит содержится в:
rhc54 2016-04-13 10:29:28 -07:00
родитель 4944ba7edc 437f5b4289
Коммит e500ea2c8c
2 изменённых файлов: 19 добавлений и 19 удалений

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

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