Skip to content

Commit

Permalink
Shift a code block to enable MCA param directive for ppr mapping
Browse files Browse the repository at this point in the history
We have to set the job attribute to PPR when an MCA param is used
to specify the mapping policy prior to processing the attribute
to setup the options object.

Signed-off-by: Ralph Castain <rhc@pmix.org>
  • Loading branch information
rhc54 committed Dec 1, 2023
1 parent e09c049 commit 95854c4
Showing 1 changed file with 42 additions and 42 deletions.
84 changes: 42 additions & 42 deletions src/mca/rmaps/base/rmaps_base_map_job.c
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,48 @@ void prte_rmaps_base_map_job(int fd, short args, void *cbdata)
free(tmp);
}

pmix_output_verbose(5, prte_rmaps_base_framework.framework_output,
"mca:rmaps: setting mapping policies for job %s inherit %s hwtcpus %s",
PRTE_JOBID_PRINT(jdata->nspace),
inherit ? "TRUE" : "FALSE",
options.use_hwthreads ? "TRUE" : "FALSE");

/* set the default mapping policy IFF it wasn't provided */
if (!PRTE_MAPPING_POLICY_IS_SET(jdata->map->mapping)) {
did_map = false;
if (inherit) {
if (NULL != parent) {
jdata->map->mapping = parent->map->mapping;
did_map = true;
} else if (PRTE_MAPPING_GIVEN & PRTE_GET_MAPPING_DIRECTIVE(prte_rmaps_base.mapping)) {
pmix_output_verbose(5, prte_rmaps_base_framework.framework_output,
"mca:rmaps mapping given by MCA param");
jdata->map->mapping = prte_rmaps_base.mapping;
if (PRTE_MAPPING_PPR == PRTE_GET_MAPPING_POLICY(jdata->map->mapping)) {
tmp = strchr(prte_rmaps_base.default_mapping_policy, ':');
++tmp;
prte_set_attribute(&jdata->attributes, PRTE_JOB_PPR,
PRTE_ATTR_GLOBAL, tmp, PMIX_STRING);
}
did_map = true;
}
}
if (!did_map) {
// let the job's personality set the default mapping behavior
if (NULL != schizo->set_default_mapping) {
rc = schizo->set_default_mapping(jdata, &options);
} else {
rc = prte_rmaps_base_set_default_mapping(jdata, &options);
}
if (PRTE_SUCCESS != rc) {
// the error message should have been printed
jdata->exit_code = rc;
PRTE_ACTIVATE_JOB_STATE(jdata, PRTE_JOB_STATE_MAP_FAILED);
goto cleanup;
}
}
}

if (prte_get_attribute(&jdata->attributes, PRTE_JOB_PPR, (void **) &tmp, PMIX_STRING)) {
ck = PMIX_ARGV_SPLIT_COMPAT(tmp, ':');
if (2 != PMIX_ARGV_COUNT_COMPAT(ck)) {
Expand Down Expand Up @@ -467,48 +509,6 @@ void prte_rmaps_base_map_job(int fd, short args, void *cbdata)
options.nprocs += app->num_procs;
}

pmix_output_verbose(5, prte_rmaps_base_framework.framework_output,
"mca:rmaps: setting mapping policies for job %s inherit %s hwtcpus %s",
PRTE_JOBID_PRINT(jdata->nspace),
inherit ? "TRUE" : "FALSE",
options.use_hwthreads ? "TRUE" : "FALSE");

/* set the default mapping policy IFF it wasn't provided */
if (!PRTE_MAPPING_POLICY_IS_SET(jdata->map->mapping)) {
did_map = false;
if (inherit) {
if (NULL != parent) {
jdata->map->mapping = parent->map->mapping;
did_map = true;
} else if (PRTE_MAPPING_GIVEN & PRTE_GET_MAPPING_DIRECTIVE(prte_rmaps_base.mapping)) {
pmix_output_verbose(5, prte_rmaps_base_framework.framework_output,
"mca:rmaps mapping given by MCA param");
jdata->map->mapping = prte_rmaps_base.mapping;
if (PRTE_MAPPING_PPR == PRTE_GET_MAPPING_POLICY(jdata->map->mapping)) {
tmp = strchr(prte_rmaps_base.default_mapping_policy, ':');
++tmp;
prte_set_attribute(&jdata->attributes, PRTE_JOB_PPR,
PRTE_ATTR_GLOBAL, tmp, PMIX_STRING);
}
did_map = true;
}
}
if (!did_map) {
// let the job's personality set the default mapping behavior
if (NULL != schizo->set_default_mapping) {
rc = schizo->set_default_mapping(jdata, &options);
} else {
rc = prte_rmaps_base_set_default_mapping(jdata, &options);
}
if (PRTE_SUCCESS != rc) {
// the error message should have been printed
jdata->exit_code = rc;
PRTE_ACTIVATE_JOB_STATE(jdata, PRTE_JOB_STATE_MAP_FAILED);
goto cleanup;
}
}
}

/* check for oversubscribe directives */
if (!(PRTE_MAPPING_SUBSCRIBE_GIVEN & PRTE_GET_MAPPING_DIRECTIVE(jdata->map->mapping))) {
if (!(PRTE_MAPPING_SUBSCRIBE_GIVEN & PRTE_GET_MAPPING_DIRECTIVE(prte_rmaps_base.mapping))) {
Expand Down

0 comments on commit 95854c4

Please sign in to comment.