Add a new param "orte_remote_tmpdir_base" for those situations where the compute nodes require a different session directory head than the head node.
This commit was SVN r24956.
Этот коммит содержится в:
родитель
decab98fb2
Коммит
6c879f87fb
@ -149,7 +149,7 @@ int orte_ess_base_app_setup(void)
|
||||
|
||||
/* setup my session directory */
|
||||
if (orte_create_session_dirs) {
|
||||
OPAL_OUTPUT_VERBOSE((2, orte_debug_output,
|
||||
OPAL_OUTPUT_VERBOSE((2, orte_ess_base_output,
|
||||
"%s setting up session dir with\n\ttmpdir: %s\n\thost %s",
|
||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||
(NULL == orte_process_info.tmpdir_base) ? "UNDEF" : orte_process_info.tmpdir_base,
|
||||
|
@ -340,7 +340,7 @@ int orte_ess_base_orted_setup(char **hosts)
|
||||
|
||||
/* setup my session directory */
|
||||
if (orte_create_session_dirs) {
|
||||
OPAL_OUTPUT_VERBOSE((2, orte_debug_output,
|
||||
OPAL_OUTPUT_VERBOSE((2, orte_ess_base_output,
|
||||
"%s setting up session dir with\n\ttmpdir: %s\n\thost %s",
|
||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||
(NULL == orte_process_info.tmpdir_base) ? "UNDEF" : orte_process_info.tmpdir_base,
|
||||
|
@ -1014,6 +1014,11 @@ static int odls_base_default_setup_fork(orte_app_context_t *context,
|
||||
*/
|
||||
orte_ess_env_put(vpid_range, num_local_procs, environ_copy);
|
||||
|
||||
/* forcibly set the local tmpdir base to match ours */
|
||||
param = mca_base_param_environ_variable("orte","tmpdir","base");
|
||||
opal_setenv(param, orte_process_info.tmpdir_base, true, environ_copy);
|
||||
free(param);
|
||||
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -78,6 +78,21 @@ int orte_register_params(void)
|
||||
"Base of the session directory tree",
|
||||
false, false, NULL, &(orte_process_info.tmpdir_base));
|
||||
|
||||
mca_base_param_reg_string_name("orte", "remote_tmpdir_base",
|
||||
"Base of the session directory tree on remote nodes, if required to be different from head node",
|
||||
false, false, NULL, &strval);
|
||||
/* orterun will pickup the value and forward it along, but must not
|
||||
* use it in its own work. So only a daemon needs to get it, and the
|
||||
* daemon will pass it down to its application procs. Note that orterun
|
||||
* will pass -its- value to any procs local to it
|
||||
*/
|
||||
if (ORTE_PROC_IS_DAEMON && NULL != strval) {
|
||||
if (NULL != orte_process_info.tmpdir_base) {
|
||||
free(orte_process_info.tmpdir_base);
|
||||
}
|
||||
orte_process_info.tmpdir_base = strval;
|
||||
}
|
||||
|
||||
mca_base_param_reg_string_name("orte", "no_session_dirs",
|
||||
"Prohibited locations for session directories (multiple locations separated by ',', default=NULL)",
|
||||
false, false, NULL, &orte_prohibited_session_dirs);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user