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