Minor update to let apps set their own component selections if desired, while preserving slave behavior
This commit was SVN r21332.
Этот коммит содержится в:
родитель
95596d1814
Коммит
a95731fc68
@ -201,7 +201,7 @@ int orte_plm_base_local_slave_launch(orte_job_t *jdata)
|
|||||||
/* add the bootproxy cmd line options */
|
/* add the bootproxy cmd line options */
|
||||||
if (ORTE_SUCCESS != (rc = orte_plm_base_append_bootproxy_args(app, &argv,
|
if (ORTE_SUCCESS != (rc = orte_plm_base_append_bootproxy_args(app, &argv,
|
||||||
jdata->jobid, 0,
|
jdata->jobid, 0,
|
||||||
1, 1, 0, 1, 1))) {
|
1, 1, 0, 1, 1, true))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -1100,7 +1100,7 @@ PRELOAD_FILES:
|
|||||||
int orte_plm_base_append_bootproxy_args(orte_app_context_t *app, char ***argv,
|
int orte_plm_base_append_bootproxy_args(orte_app_context_t *app, char ***argv,
|
||||||
orte_jobid_t jobid, orte_vpid_t vpid,
|
orte_jobid_t jobid, orte_vpid_t vpid,
|
||||||
int num_nodes, orte_vpid_t num_procs, orte_local_rank_t lrank,
|
int num_nodes, orte_vpid_t num_procs, orte_local_rank_t lrank,
|
||||||
orte_vpid_t nlocal, int nslots)
|
orte_vpid_t nlocal, int nslots, bool overwrite)
|
||||||
{
|
{
|
||||||
char *param, *path, *tmp, *cmd, *basename, *dest_dir;
|
char *param, *path, *tmp, *cmd, *basename, *dest_dir;
|
||||||
int i;
|
int i;
|
||||||
@ -1135,21 +1135,29 @@ int orte_plm_base_append_bootproxy_args(orte_app_context_t *app, char ***argv,
|
|||||||
|
|
||||||
/* add MCA params required for launch */
|
/* add MCA params required for launch */
|
||||||
|
|
||||||
|
/*** OVERRIDE WHAT THE APP PROVIDED ONLY IF DIRECTED TO DO SO ***/
|
||||||
/* tell ESS to select the "slave" component */
|
/* tell ESS to select the "slave" component */
|
||||||
param = mca_base_param_environ_variable("ess",NULL,NULL);
|
param = mca_base_param_environ_variable("ess",NULL,NULL);
|
||||||
opal_setenv(param, "slave", true, argv);
|
opal_setenv(param, "slave", overwrite, argv);
|
||||||
free(param);
|
free(param);
|
||||||
|
|
||||||
/* tell ROUTED to select the "slave" component */
|
/* tell ROUTED to select the "slave" component */
|
||||||
param = mca_base_param_environ_variable("routed",NULL,NULL);
|
param = mca_base_param_environ_variable("routed",NULL,NULL);
|
||||||
opal_setenv(param, "slave", true, argv);
|
opal_setenv(param, "slave", overwrite, argv);
|
||||||
free(param);
|
free(param);
|
||||||
|
|
||||||
/* tell GRPCOMM to select the "hier" component */
|
/* tell GRPCOMM to select the "hier" component */
|
||||||
param = mca_base_param_environ_variable("grpcomm",NULL,NULL);
|
param = mca_base_param_environ_variable("grpcomm",NULL,NULL);
|
||||||
opal_setenv(param, "hier", true, argv);
|
opal_setenv(param, "hier", overwrite, argv);
|
||||||
|
free(param);
|
||||||
|
|
||||||
|
/* setup yield schedule to be aggressive */
|
||||||
|
param = mca_base_param_environ_variable("mpi", NULL, "yield_when_idle");
|
||||||
|
opal_setenv(param, "0", overwrite, argv);
|
||||||
free(param);
|
free(param);
|
||||||
|
|
||||||
|
|
||||||
|
/*** OVERWRITE ANY PRE-EXISTING VALUES ***/
|
||||||
/* must pass the number of nodes */
|
/* must pass the number of nodes */
|
||||||
param = mca_base_param_environ_variable("orte","num","nodes");
|
param = mca_base_param_environ_variable("orte","num","nodes");
|
||||||
asprintf(&cmd, "%d", num_nodes);
|
asprintf(&cmd, "%d", num_nodes);
|
||||||
@ -1173,11 +1181,6 @@ int orte_plm_base_append_bootproxy_args(orte_app_context_t *app, char ***argv,
|
|||||||
free(param);
|
free(param);
|
||||||
free(path);
|
free(path);
|
||||||
|
|
||||||
/* setup yield schedule to be aggressive */
|
|
||||||
param = mca_base_param_environ_variable("mpi", NULL, "yield_when_idle");
|
|
||||||
opal_setenv(param, "0", true, argv);
|
|
||||||
free(param);
|
|
||||||
|
|
||||||
/* set the app_context number */
|
/* set the app_context number */
|
||||||
param = mca_base_param_environ_variable("orte","app","num");
|
param = mca_base_param_environ_variable("orte","app","num");
|
||||||
opal_setenv(param, "1", true, argv);
|
opal_setenv(param, "1", true, argv);
|
||||||
|
@ -116,7 +116,7 @@ ORTE_DECLSPEC int orte_plm_base_setup_rsh_launch(char *nodename, orte_app_contex
|
|||||||
ORTE_DECLSPEC int orte_plm_base_append_bootproxy_args(orte_app_context_t *app, char ***argv,
|
ORTE_DECLSPEC int orte_plm_base_append_bootproxy_args(orte_app_context_t *app, char ***argv,
|
||||||
orte_jobid_t jobid, orte_vpid_t vpid,
|
orte_jobid_t jobid, orte_vpid_t vpid,
|
||||||
int num_nodes, orte_vpid_t num_procs, orte_local_rank_t lrank,
|
int num_nodes, orte_vpid_t num_procs, orte_local_rank_t lrank,
|
||||||
orte_vpid_t nlocal, int nslots);
|
orte_vpid_t nlocal, int nslots, bool overwrite);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Heartbeat support
|
* Heartbeat support
|
||||||
|
@ -311,7 +311,7 @@ int orte_plm_rshd_launch(orte_job_t *jdata)
|
|||||||
proc->name.jobid, proc->name.vpid,
|
proc->name.jobid, proc->name.vpid,
|
||||||
jdata->map->num_nodes,
|
jdata->map->num_nodes,
|
||||||
jdata->num_procs, proc->local_rank,
|
jdata->num_procs, proc->local_rank,
|
||||||
node->num_procs, jdata->total_slots_alloc))) {
|
node->num_procs, jdata->total_slots_alloc, false))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user