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

Reply via email to