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
>

Reply via email to