Understood - my point, however, was that we can easily add that capability to the mca params file.. This would seem far preferable to creating a completely new, parallel way of setting envars.
Why not do it that way? On Tue, Apr 1, 2014 at 4:34 PM, Mike Dubman <mi...@dev.mellanox.co.il>wrote: > 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 >>> >> >> > > _______________________________________________ > 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/14447.php >