Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] mpivars.sh - Intel Fortran 13.1 conflict with OpenMPI 1.6.3
From: Tim Prince (n8tm_at_[hidden])
Date: 2013-01-24 13:29:27


On 01/24/2013 12:40 PM, Michael Kluskens wrote:
> This is for reference and suggestions as this took me several hours to track down and the previous discussion on "mpivars.sh" failed to cover this point (nothing in the FAQ):
>
> I successfully build and installed OpenMPI 1.6.3 using the following on Debian Linux:
>
> ./configure --prefix=/opt/openmpi/intel131 --disable-ipv6 --with-mpi-f90-size=medium --with-f90-max-array-dim=4 --disable-vt F77=/opt/intel/composer_xe_2013.1.117/bin/intel64/ifort FC=/opt/
> intel/composer_xe_2013.1.117/bin/intel64/ifort CXXFLAGS=-m64 CFLAGS=-m64 CC=gcc CXX=g++
>
> (disable-vt was required because of an error finding -lz which I gave up on).
>
> My .tcshrc file HAD the following:
>
> set path = (/opt/openmpi/intel131/bin $path)
> setenv LD_LIBRARY_PATH /opt/openmpi/intel131/lib:$LD_LIBRARY_PATH
> setenv MANPATH /opt/openmpi/intel131/share/man:$MANPATH
> alias mpirun "mpirun --prefix /opt/openmpi/intel131 "
> source /opt/intel/composer_xe_2013.1.117/bin/compilervars.csh intel64
>
> For years I have used these procedures on Debian Linux and OS X with earlier versions of OpenMPI and Intel Fortran.
>
> However, at some point Intel Fortran started including "mpirt", including: /opt/intel/composer_xe_2013.1.117/mpirt/bin/intel64/mpirun
>
> So even through I have the alias set for mpirun, I got the following error:
>
>> mpirun -V
> .: 131: Can't open /opt/intel/composer_xe_2013.1.117/mpirt/bin/intel64/mpivars.sh
>
> Part of the confusion is that OpenMPI source does include a reference to "mpivars" in "contrib/dist/linux/openmpi.spec"
>
> The solution only occurred as I was writing this up, source intel setup first:
>
> source /opt/intel/composer_xe_2013.1.117/bin/compilervars.csh intel64
> set path = (/opt/openmpi/intel131/bin $path)
> setenv LD_LIBRARY_PATH /opt/openmpi/intel131/lib:$LD_LIBRARY_PATH
> setenv MANPATH /opt/openmpi/intel131/share/man:$MANPATH
> alias mpirun "mpirun --prefix /opt/openmpi/intel131 "
>
> Now I finally get:
>
>> mpirun -V
> mpirun (Open MPI) 1.6.3
>
> The mpi runtime should be in the redistributable for their MPI compiler not in the base compiler. The question is how much of /opt/intel/composer_xe_2013.1.117/mpirt can I eliminate safely and should I ( multi-user machine were each user has their own Intel license, so I don't wish to trouble shoot this in the future ) ?
>
>
>
ifort mpirt is a run-time to support co-arrays, but not full MPI. This
version of the compiler checks in its path setting scripts whether Intel
MPI is already on LD_LIBRARY_PATH, and so there is a conditional setting
of the internal mpivars. I assume the co-array feature would be
incompatible with OpenMPI and you would want to find a way to avoid any
reference to that library, possibly by avoiding sourcing that part of
ifort's compilervars.
If you want a response on this subject from the Intel support team,
their HPC forum might be a place to bring it up:
http://software.intel.com/en-us/forums/intel-clusters-and-hpc-technology

-- 
Tim Prince