On Apr 22, 2008, at 4:07 PM, gildo....@gmx.de 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
that
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-
install/lib/
The test shows up, that the export worked:
stephan@openmpivmwaretest1:~> echo $LD_LIBRARY_PATH
:/home/stephan/openmpi-install/lib/
(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.
--
Jeff Squyres
Cisco Systems