I can see the potential utility, but I do have concerns about how to make it 
work without causing a lot of user problems:

* as currently implemented, it only affects procs launched via mpirun. This 
seems odd - if the user does a direct launch, they would get totally different 
behavior? Shouldn't the registering and parsing of this MCA param follow our 
usual procedure and be done by the application itself instead of by orterun?

* Imagine someone has entered this MCA param into the default MCA param file, 
and that it includes "foo=car" in it. Now the user sets "foo=baz" in their 
environment. How many hours will the user spend tearing out his/her hair trying 
to understand why the application behavior isn't as expected before they 
finally realize that the default MCA param file is messing with their non-OMPI 
envars? Once they finally do figure it out, how do they "zero" that MCA param 
so it isn't processed? We don't have a mechanism for overriding a value with 
"NULL" - doesn't this option require one?

* again, someone puts an entry in the default MCA param file that includes 
"foo=car". The user executes mpirun with "-x foo=baz", which is perfectly 
legitimate. What is the precedence rule we use to determine the value of foo? 
If we consolidate the two options (as you suggest), then this would be 
alleviated - but one is an MCA param and the other a non-MCA cmd-line option, 
so we would have to break backward compatibility to resolve it (which isn't 
impossible - just worth a discussion).

* assume an entry in the MCA param file that includes multiple envars, one of 
which is "foo=car". If the user then puts "-mca env_list foo=baz" on their cmd 
line, do we delete all the other envars in the original entry and only do the 
new one? Or would someone expect that only the new one would be modified or 
added, but the others would remain?

Hence I think this requires some discussion at next week's call. Remember, by 
policy, we don't forward non-MCA envars - but now we are forcibly setting them 
only in the app procs. Strikes me as a major change in behavior, and I'm not 
sure it won't cause more trouble than it solves.


On Apr 3, 2014, at 1:01 AM, Shamis, Pavel <sham...@ornl.gov> wrote:

> 
>> mca param file treats any key=val as mca parameter only.
>> In order to add parser support for something that is not mca param, will 
>> require change file syntax and it will look bad, i.e.:
>> 
>> mca btl = sm,self,openib
>> env DISPLAY = console:0
>> 
>> I think the current implementation is less intrusive and re-uses existing 
>> infra in the most elegant way.
>> The param file syntax change is too big effort to justify this feature 
>> (IMHO) which can be provided with existing infra w/o breaking anything.
> 
> 
> IMHO this is a useful parameter option to have. If we may consolidate these 
> two parameters (-x and the new one) into
> single one, it might be even more helpful.
> 
> Best,
> Pasha.
> _______________________________________________
> 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/14452.php

Reply via email to