1
1

Ensure that the #nodes in the job map gets properly updated when using the sequential mapper. Provide some further diagnostic info to help understand the problem when encountered.

Этот коммит содержится в:
Ralph Castain 2014-12-08 08:03:53 -08:00
родитель d6d69e2b13
Коммит b757b3f452
3 изменённых файлов: 15 добавлений и 1 удалений

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

@ -97,6 +97,11 @@ Your job failed to map. Either no mapper was available, or none
of the available mappers was able to perform the requested of the available mappers was able to perform the requested
mapping operation. This can happen if you request a map type mapping operation. This can happen if you request a map type
(e.g., loadbalance) and the corresponding mapper was not built. (e.g., loadbalance) and the corresponding mapper was not built.
Mapper result: %s
#procs mapped: %d
#nodes assigned: %d
# #
[unrecognized-policy] [unrecognized-policy]
The specified %s policy is not recognized: The specified %s policy is not recognized:

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

@ -304,7 +304,9 @@ void orte_rmaps_base_map_job(int fd, short args, void *cbdata)
* the map, then that's an error * the map, then that's an error
*/ */
if (!did_map || 0 == jdata->num_procs || 0 == jdata->map->num_nodes) { if (!did_map || 0 == jdata->num_procs || 0 == jdata->map->num_nodes) {
orte_show_help("help-orte-rmaps-base.txt", "failed-map", true); orte_show_help("help-orte-rmaps-base.txt", "failed-map", true,
did_map ? "mapped" : "unmapped",
jdata->num_procs, jdata->map->num_nodes);
ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_MAP_FAILED); ORTE_ACTIVATE_JOB_STATE(jdata, ORTE_JOB_STATE_MAP_FAILED);
OBJ_RELEASE(caddy); OBJ_RELEASE(caddy);
return; return;

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

@ -201,6 +201,13 @@ static int orte_rmaps_seq_map(orte_job_t *jdata)
} }
#endif #endif
/* initialize all the nodes as not included in this job map */
for (j=0; j < orte_node_pool->size; j++) {
if (NULL != (node = (orte_node_t*)opal_pointer_array_get_item(orte_node_pool, j))) {
ORTE_FLAG_UNSET(node, ORTE_NODE_FLAG_MAPPED);
}
}
/* cycle through the app_contexts, mapping them sequentially */ /* cycle through the app_contexts, mapping them sequentially */
for(i=0; i < jdata->apps->size; i++) { for(i=0; i < jdata->apps->size; i++) {
if (NULL == (app = (orte_app_context_t*)opal_pointer_array_get_item(jdata->apps, i))) { if (NULL == (app = (orte_app_context_t*)opal_pointer_array_get_item(jdata->apps, i))) {