[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