[Pw_forum] Parallel installation MPIF90 issue
Riccardo Di Meo
dimeo at democritos.it
Wed May 26 23:48:08 CEST 2010
soumyajyoti haldar wrote:
> Hi,
>
> On Wed, May 26, 2010 at 9:11 PM, Riccardo Di Meo <dimeo at democritos.it
> <mailto:dimeo at democritos.it>> wrote:
>
> Vikas Varshney wrote:
> > Dear all,
> > I have a very simple question.
> >
> > I have 2 mpif90 installed on my machine
> > one in /usr/local/bin which does not have fortran support. It says
> > "Unfortunately, this installation of Open MPU was not compiled with
> > Fortran 90 support ..."
> > other one is in my local directory which was installed by me. It
> does
> > have fortran compiler (ifort).
> >
> > When, I try to run configure script to genarate makefile, it assumes
> > mpif90 to be the first one and results in unsuccessful
> configure. So,
> > my question is that how can I direct the configure script to
> look for
> > other mpif90 and the assciated libraries and header files. Where
> do I
> > need to make necessary changes? Or do I need to ask my admin to
> update
> > mpif90 in /usr/local/bin (where I dont have writable access)?
>
> Two solutions:
>
> There's a MPIF90 environment variable, which can be set to the mpif90
> compiler of your choice. Just point it to your mpif90 binary in your
> home before configuring QE. This is the standard/correct solution.
>
> A "one size fits all" solution, which you can use also for other
> similar
> cases ,would be to make your PATH environment variable give precedence
> to the location of the mpif90 compiler you want to use:
>
> export PATH=<location of your mpif90>:$PATH [bash]
>
>
> you need to set correct LD_LIBRARY_PATH also. Otherwise during
> compilation and run time it may pickup the wrong
LD_LIBRARY_PATH it's a variable used only at runtime and has nothing to
do withbcompilation (man ld.so for details).
Btw if the MPI implementation is openmpi, LD_LIBRARY_PATH doesn't need
to be changed , as mpirun/mpiexec will set the correct environment
automatically (not to mention implementations like mpich v1, which link
statically by default)...
>
> and one personal experience ,by default /usr/bin and /usr/local/bin
> are set as path when u boot up the system.
> and now if you your current mpif90 directory to PATH, it may not pick
> up the correct one. bcoz u have 2 mpif90, one is in /usr/bin , other
> is in some directory in you home. the search order for the mpif90
> depends on which folder path is loaded to your path variable first .
> So if your PATH variable contains the entry of /usr/bin first then
> it'll not pick up the mpif90 from ur home.
>
> I made some changes in my .bash_profile as follows
>
> line 1 : unset PATH
> line 2 : export PATH="${PATH}:<location of your mpif90>"
> line 3: export PATH="${PATH}:/bin:/usr/bin:/usr/local/bin" and finally
> load "/etc/profile" again
> line 4: source /etc/profile
Maybe I'm missing something, but besides from using 4 instructions
instead of one, and from adding a stylish ":" in front of your PATH,
what's the added benefit of your suggestion over the compact form
export PATH=<location of your mpif90>:$PATH
in my reply?
Besides, your suggestion assumes that the definition of PATH comes only
from /etc/profile, which would prevent people accepting it from using
software installed by the administrator in non standard ways (e.g. by
modifying /etc/skel/.bashrc)
Cheers,
RDM
More information about the users
mailing list