1
1

mindist: cosmetic, use fallback to byslot if unable to read NUMA info, small fix.

fixed by Elena, reviewed by Ralph/Mike
cmr=v1.7.4:reviewer=ompi-gk1.7

This commit was SVN r29679.
Этот коммит содержится в:
Mike Dubman 2013-11-13 09:26:40 +00:00
родитель 5b38259264
Коммит 840e2cb4a2
3 изменённых файлов: 24 добавлений и 20 удалений

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

@ -1856,7 +1856,7 @@ static int dist_cmp_fn (opal_list_item_t **a, opal_list_item_t **b)
orte_rmaps_numa_node_t *aitem = *((orte_rmaps_numa_node_t **) a);
orte_rmaps_numa_node_t *bitem = *((orte_rmaps_numa_node_t **) b);
if (bitem->dist_from_closed > aitem->dist_from_closed) {
if (aitem->dist_from_closed > bitem->dist_from_closed) {
return 1;
} else if( aitem->dist_from_closed == bitem->dist_from_closed ) {
return 0;

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

@ -24,19 +24,19 @@ specifying multiple applications, you must specify how many processes
of each to launch via the -np argument.
#
[orte-rmaps-mindist:no-pci-locality-info]
No PCI locality information could be found on at least one node:
No PCI locality information could be found on at least one node. Please, upgrade BIOS to expose NUMA info.
Node: %s
Open MPI therefore cannot mapp\ the application as specified.
Open MPI will map the application by default (BYSLOT).
#
[orte-rmaps-mindist:several-hca-devices]
There are several OpenFabrics devices found on at least one node. Please specify the definite one.
There are several OpenFabrics devices found on at least one node. To use rmaps_mindist mapper, please, specify the definite one.
Devices: %d
Node: %s
Open MPI therefore cannot map the application as specified.
Open MPI will map the application by default (BYSLOT).
#
[orte-rmaps-mindist:device-not-found]
An OpenFabrics device was specified that cannot be found on at least one node.
@ -44,4 +44,4 @@ An OpenFabrics device was specified that cannot be found on at least one node.
Device: %s
Node: %s
Open MPI therefore cannot map the application as specified.
Open MPI will map the application by default (BYSLOT).

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

@ -212,17 +212,6 @@ static int mindist_map(orte_job_t *jdata)
goto error;
}
/* add the node to the map, if needed */
if (!node->mapped) {
if (ORTE_SUCCESS > (rc = opal_pointer_array_add(jdata->map->nodes, (void*)node))) {
ORTE_ERROR_LOG(rc);
goto error;
}
node->mapped = true;
OBJ_RETAIN(node); /* maintain accounting on object */
jdata->map->num_nodes++;
}
/* get the number of available pus */
if (opal_hwloc_use_hwthreads_as_cpus) {
total_npus = opal_hwloc_base_get_nbobjs_by_type(node->topology, HWLOC_OBJ_PU, 0, OPAL_HWLOC_AVAILABLE);
@ -250,12 +239,14 @@ static int mindist_map(orte_job_t *jdata)
if (ret > 1) {
orte_show_help("help-orte-rmaps-md.txt", "orte-rmaps-mindist:several-hca-devices",
true, ret, node->name);
rc = ORTE_ERR_SILENT;
ORTE_SET_MAPPING_POLICY(jdata->map->mapping, ORTE_MAPPING_BYSLOT);
rc = ORTE_ERR_TAKE_NEXT_OPTION;
goto error;
} else if (ret < 0) {
orte_show_help("help-orte-rmaps-md.txt", "orte-rmaps-mindist:device-not-found",
true, orte_rmaps_base.device, node->name);
rc = ORTE_ERR_SILENT;
ORTE_SET_MAPPING_POLICY(jdata->map->mapping, ORTE_MAPPING_BYSLOT);
rc = ORTE_ERR_TAKE_NEXT_OPTION;
goto error;
}
if (opal_list_get_size(&numa_list) > 0) {
@ -293,7 +284,8 @@ static int mindist_map(orte_job_t *jdata)
/* don't have info about pci locality */
orte_show_help("help-orte-rmaps-md.txt", "orte-rmaps-mindist:no-pci-locality-info",
true, node->name);
rc = ORTE_ERR_SILENT;
ORTE_SET_MAPPING_POLICY(jdata->map->mapping, ORTE_MAPPING_BYSLOT);
rc = ORTE_ERR_TAKE_NEXT_OPTION;
goto error;
}
while (NULL != (numa_item = opal_list_remove_first(&numa_list))) {
@ -306,6 +298,18 @@ static int mindist_map(orte_job_t *jdata)
num_procs_to_assign--;
}
}
/* add the node to the map, if needed */
if (!node->mapped) {
if (ORTE_SUCCESS > (rc = opal_pointer_array_add(jdata->map->nodes, (void*)node))) {
ORTE_ERROR_LOG(rc);
goto error;
}
node->mapped = true;
OBJ_RETAIN(node); /* maintain accounting on object */
jdata->map->num_nodes++;
}
}
/* If we get to the end of all the nodes and still have procs remaining, then