1
1

Minor update to let apps set their own component selections if desired, while preserving slave behavior

This commit was SVN r21332.
Этот коммит содержится в:
Ralph Castain 2009-05-30 20:42:23 +00:00
родитель 95596d1814
Коммит a95731fc68
3 изменённых файлов: 15 добавлений и 12 удалений

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

@ -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;
} }