The "-x var=val" cannot be placed into mca params file.
On Wed, Apr 2, 2014 at 2:34 AM, Mike Dubman <mi...@dev.mellanox.co.il>wrote: > yes, it is expected that the "string" value should be quoted. will clarify > it in the help message and man page. Thanks for spotting. > > The underlying libraries used from OMPI > (mxm,psm,hcoll,glibc,pmi2,slurm,...) all have shell environment variables > to control their behave. > > It is unreasonable to expose mca parameter for every library tunable used > from ompi, but for most frequently used ones. > > > > > > > > On Wed, Apr 2, 2014 at 2:23 AM, Ralph Castain <r...@open-mpi.org> wrote: > >> If you are expecting the user to put quotes around the string, then you >> better tell them that in the help message. Otherwise, they would do what I >> did - simply list the envars with a space in-between, and everything fails. >> >> Also, you need to update mpirun.1in to reflect this new option or else >> nobody will know about it :-) >> >> However, looking at your example leaves me totally puzzled. Why are these >> not just MCA params to begin with, in which case we don't need another >> duplicate mechanism for setting them? >> >> We should only be setting envars that have nothing to do with OMPI, not >> setting OMPI-related envars - anything OMPI related is supposed to be an >> MCA param. >> >> >> >> On Tue, Apr 1, 2014 at 4:16 PM, Mike Dubman <mi...@dev.mellanox.co.il>wrote: >> >>> 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 >>>> >>> >>> >>> _______________________________________________ >>> 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/14442.php >>> >> >> >> _______________________________________________ >> 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/14444.php >> > >