not sure what you mean, could you please provide example? comma is used often as part of the value, here is a example:
-mca base_env_list "HCOLL_BCOL=basesmuma,mlnx_p2p HCOLL_SBGP=basesmuma,p2p HCOLL_ML_USE_KNOMIAL_ALLREDUCE=1" On Wed, Apr 2, 2014 at 2:12 AM, Ralph Castain <r...@open-mpi.org> wrote: > This change just looks wrong - you can't split the variables on a "space" > as there is no way to know how many variables there might be, and thus how > to parse the rest of the cmd line. At best, you need a comma-delimited list. > > Please fix this! > Ralph > > > > On Tue, Apr 1, 2014 at 2:14 PM, <svn-commit-mai...@open-mpi.org> wrote: > >> Author: miked (Mike Dubman) >> Date: 2014-04-01 17:14:31 EDT (Tue, 01 Apr 2014) >> New Revision: 31302 >> URL: https://svn.open-mpi.org/trac/ompi/changeset/31302 >> >> Log: >> opal: add mca param to control ranks env variables >> >> add -mca base_env_list "var1=val1 var2=val2 ..." mca parameter that can >> be used in mca param files >> or with -am app.conf mpirun commandline to set rank env variables with >> mca mechanism >> >> fixed by Elena, reviewed by Miked >> >> cmr=v1.8.1:reviewer=ompi-rm1.8 >> >> Text files modified: >> trunk/opal/mca/base/help-mca-var.txt | 5 +++++ >> trunk/opal/mca/base/mca_base_var.c | 36 >> ++++++++++++++++++++++++++++++++++++ >> trunk/opal/mca/base/mca_base_var.h | 2 ++ >> trunk/orte/tools/orterun/orterun.c | 2 ++ >> 4 files changed, 45 insertions(+), 0 deletions(-) >> >> Modified: trunk/opal/mca/base/help-mca-var.txt >> >> ============================================================================== >> --- trunk/opal/mca/base/help-mca-var.txt Tue Apr 1 16:57:12 2014 >> (r31301) >> +++ trunk/opal/mca/base/help-mca-var.txt 2014-04-01 17:14:31 EDT >> (Tue, 01 Apr 2014) (r31302) >> @@ -121,3 +121,8 @@ >> >> Value: %s >> Source: %s >> +# >> +[incorrect-env-list-param] >> +The format of mca_base_env_list parameter is incorrect. It should be >> +VAR1=VAL1 VAR2=VAL2 VAR3=VAL3 ... >> + Value: %s >> >> Modified: trunk/opal/mca/base/mca_base_var.c >> >> ============================================================================== >> --- trunk/opal/mca/base/mca_base_var.c Tue Apr 1 16:57:12 2014 >> (r31301) >> +++ trunk/opal/mca/base/mca_base_var.c 2014-04-01 17:14:31 EDT (Tue, 01 >> Apr 2014) (r31302) >> @@ -61,6 +61,7 @@ >> static char *mca_base_var_override_file = NULL; >> static char *mca_base_var_file_prefix = NULL; >> static char *mca_base_param_file_path = NULL; >> +static char *mca_base_env_list = NULL; >> static bool mca_base_var_suppress_override_warning = false; >> static opal_list_t mca_base_var_file_values; >> static opal_list_t mca_base_var_override_values; >> @@ -259,6 +260,41 @@ >> return OPAL_SUCCESS; >> } >> >> +int mca_base_var_process_env_list(char ***context_env) >> +{ >> + int i, ret; >> + char** tokens; >> + char* ptr; >> + char* param, *value; >> + ret = mca_base_var_register ("opal", "mca", "base", "env_list", >> + "Set SHELL env variables", >> + MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, >> OPAL_INFO_LVL_3, >> + MCA_BASE_VAR_SCOPE_READONLY, >> &mca_base_env_list); >> + if ((0 > ret) || (NULL == mca_base_env_list)) { >> + return ret; >> + } >> + tokens = opal_argv_split(mca_base_env_list, ' '); >> + if (NULL != tokens) { >> + for (i = 0; NULL != tokens[i]; i++) { >> + if (NULL == (ptr = strchr(tokens[i], '='))) { >> + opal_show_help("help-mca-var.txt", >> "incorrect-env-list-param", >> + true, mca_base_env_list); >> + opal_argv_free(tokens); >> + return OPAL_ERROR; >> + } else { >> + param = strdup(tokens[i]); >> + value = strchr(param, '='); >> + *value = '\0'; >> + value++; >> + opal_setenv(param, value, false, context_env); >> + free(param); >> + } >> + } >> + opal_argv_free(tokens); >> + } >> + return OPAL_SUCCESS; >> +} >> + >> static int mca_base_var_cache_files(bool rel_path_search) >> { >> char *tmp; >> >> Modified: trunk/opal/mca/base/mca_base_var.h >> >> ============================================================================== >> --- trunk/opal/mca/base/mca_base_var.h Tue Apr 1 16:57:12 2014 >> (r31301) >> +++ trunk/opal/mca/base/mca_base_var.h 2014-04-01 17:14:31 EDT (Tue, 01 >> Apr 2014) (r31302) >> @@ -716,6 +716,8 @@ >> */ >> OPAL_DECLSPEC int mca_base_var_dump(int vari, char ***out, >> mca_base_var_dump_type_t output_type); >> >> +OPAL_DECLSPEC int mca_base_var_process_env_list(char ***context_env); >> + >> END_C_DECLS >> >> #endif /* OPAL_MCA_BASE_VAR_H */ >> >> Modified: trunk/orte/tools/orterun/orterun.c >> >> ============================================================================== >> --- trunk/orte/tools/orterun/orterun.c Tue Apr 1 16:57:12 2014 >> (r31301) >> +++ trunk/orte/tools/orterun/orterun.c 2014-04-01 17:14:31 EDT (Tue, 01 >> Apr 2014) (r31302) >> @@ -1628,6 +1628,8 @@ >> goto cleanup; >> } >> mca_base_cmd_line_process_args(&cmd_line, app_env, &global_mca_env); >> + mca_base_var_process_env_list(app_env); >> + >> >> /* Is there an appfile in here? */ >> >> _______________________________________________ >> svn mailing list >> s...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/svn >> > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2014/04/14441.php >