On Mon, 5 Nov 2007, Torsten Hoefler wrote:
> On Mon, Nov 05, 2007 at 04:57:19PM -0500, Brian W. Barrett wrote:
>> This is extremely tricky to do. How do you know which environment
>> variables to forward (foo in this case) and which not to (hostname).
>> SLURM has a better chance, since it's linux only and generally only run on
>> tightly controlled clusters. But there's a whole variety of things that
>> shouldn't be forwarded and that list differs from OS to OS.
>>
>> I believe we toyed around with the "right thing" in LAM and early on with
>> OPen MPI and decided that it was too hard to meet expected behavior.
> Some applications rely on this (I know at least two right away, Gamess
> and Abinit) and they work without problems with Lam/Mpich{1,2} but not
> with Open MPI. I am *not* arguing that those applications are correct (I
> agree that this way of passing arguments is ugly, but it's done).
>
> I know it's not defined in the standard but I think it's a nice
> convenient functionality. E.g., setting the LD_LIBRARY_PATH to find
> libmpi.so in the .bashrc is also a pain if you have multiple (Open) MPIs
> installed.
LAM does not automatically propogate environment variables -- it's
behavior is almost *exactly* like Open MPI's. There might be a situation
where the environment is not quite so scrubbed if a process is started on
the same node mpirun is executed on, but it's only appearances -- in
reality, that's the environment that was alive when lamboot was executed.
With both LAM and Open MPI, there is the -x option to propogate a list of
environment variables, but that's about it. Neither will push
LD_LIBRARY_PATH by default (and there are many good reasons for that,
particularly in heterogeneous situations).
Brian
|