Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Problems with program-execution with OpenMPI: Orted: command not found
From: Hans Wurst (gildo.rex_at_[hidden])
Date: 2008-04-25 10:54:20


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_at_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