Hi Jeff, > >> 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.
ok! > 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'm not conscious about what a MPI wrapper compiler is and how it works. Maybe we can discuss this with a little example: mpptest requires the current installation path of the MPI-implementation before compiling. When I switch between MPI-implementations, do I have to re-compile the benchmark each time? If not, how do I handle that issue? How do I keep the two compiled executables separate? > > > 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. Understood! > > > 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. OK, I tried that and it works great. Knowing that, I've got one more question regarding different MPI-Implementations on one node. What is the smartest way to switch between them? Changing the PATH's in the .bashrc and rebooting the nodes? Is there a smart way to do that online without reboot? Would it be possible to have two separate users "MPICHuser" and "OpenMPIuser" each with the PATH for the corresponding MPI-implementation´, and launching the processes for the different implementations with these separate users? Thanks in advance! Stephan -- GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen! Jetzt dabei sein: http://www.shortview.de/?mc=sv_ext_mf@gmx