Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] [OMPI svn] svn:open-mpi r31302 - in trunk: opal/mca/base orte/tools/orterun
From: Mike Dubman (miked_at_[hidden])
Date: 2014-04-01 19:16:18


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 <rhc_at_[hidden]> 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-mailer_at_[hidden]> 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
>> svn_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/svn
>>
>
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> 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
>