On Apr 22, 2008, at 4:07 PM, gildo.rex_at_[hidden] wrote:
>> All you need to do is install them both into separate prefixes
>> (e.g., /
>> opt/openmpi and /opt/mpich). Then when you're using them, ensure
>> your PATH / LD_LIBRARY_PATH is set consistently across all nodes, or
>> if using Open MPI, use the options listed in the "What if I can't
>> modify my PATH and/or LD_LIBRARY_PATH?" FAQ entry (I'm particularly
>> fond of the --enable-mpirun-prefix-by-default option).
> Ah, thats good news! My concern is, as I also want to use
> performance-benchmarks, which are specifically compiled for an
> installation of MPI, that these benchmarks will not work properly
> anymore. E.g. Intel IMB Benchmark or mpptest. Would it be a valid
> solution, to compile these benchmarks new when switching between
> MPICH and OpenMPI?
MPI applications are source compatible -- they are not binary
compatible between different implementations. So you'll need to
compile your benchmarks for each MPI implementation that you want to
test (i.e., use that MPI's wrapper compilers to compile them).
> I've set the second Path using the command
> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/stephan/openmpi-
> The test shows up, that the export worked:
> stephan_at_openmpivmwaretest1:~> echo $LD_LIBRARY_PATH
> (on both nodes)
Note that running an "export" in a shell on a node has no effect for
any other processes on that machine that are not children of that
shell. Consider that mpirun will end up calling "ssh othernode
orted ....", which will not have any visibility on whether you
exported an environment variable in some other shell on the same host.
> Then I used the --prefix-option:
> mpirun --prefix /home/stephan/openmpi-install -np 2 --hostfile
> /home/stephan/mpd.hosts /bin/hostname
> and suddenly it worked!!!
The --prefix option (and friends) make the ssh/rsh command line much
more complex, effectively setting PATH and LD_LIBRARY_PATH for you on
each remote machine before launching orted.