Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28497 Discussions

Problems in configuring OpenMPI to Intel Compilers

shawn85
Beginner
1,469 Views
Hi,

I've been unable to config openmpi to both ifort or icc or icpc.
mpif90 still uses gfortran, mpicc still uses gcc as compilers
This is what I've done for the installation of openMPI

gunzip -c openmpi-1.4.4.tar.gz | tar xf -
cd openmpi-1.4.4
./configure --prefix=/usr/local CC=icc CXX=icpc F77=ifort FC=ifort
make all install

I've added the following to my bashrc

PATH=$PATH:/usr/local/composer_xe_2011_sp1.7.256/bin/ia32

export PATH=/usr/local/bin:${PATH}
export LD_LIBRARY_PATH="/usr/local/composer_xe_2011_sp1.7.256/compiler/lib:$LD_LIBRARY_PATH":${LD_LIBRARY_PATH}

The intel compiler version I am using is the non-commercial version. They can work fine on their own eg (ifort, icc, icpc all work fine)

Please advise on how to config openmpi to intel compilers.
Thanks
0 Kudos
7 Replies
Ron_Green
Moderator
1,468 Views
Most of this looks right based on this doc
but your .bashrc file doesn't look right. What not just
source /opt/intel/bin/compilervars.sh ia32
in your .bashrc rather than trying to reinvent the wheel with explicitly calling out PATH and LD_LIBRARY_PATH.
Since many linux distros may come with mpi pre-installed, make sure to use command:
which mpif90
to make sure it's picking up the OpenMPI loaded in /usr/local rather than the pre-installed package.
ron
0 Kudos
shawn85
Beginner
1,469 Views

Hi
I have made the changes to my bashrc.
As I have installed the intel compilers on usr/local
I have added this to bashrc

source /usr/local/composer_xe_2011_sp1/bin/compilervars.sh ia32


by using the which mpif90 on shell, I found that openmpi is installed on /usr/bin
so I added the following to bashrc

export PATH=/usr/local/bin:${PATH}

However, I still am unable to solve the problem that I had.

Please do provide advice again.
Shawn
0 Kudos
shawn85
Beginner
1,469 Views
Hi,

I have installed the intel compilers in usr/local
So I have added the following to bashrc

source /usr/local/composer_xe_2011_sp1/bin/compilervars.sh ia32

By using the which mpif90 command on shell, I found that it is at /usr/bin
So I added this to bashrc

export PATH=/usr/local/bin:${PATH}

However, I am still unable to solve my problem.

Please do provide me with additional advice. Thanks
0 Kudos
shawn85
Beginner
1,468 Views
Hi,

I have done the following.
Reinstalled intel compilers and placed it in the default /opt/intel
In .bashrc, I have added
source /opt/intel/bin/compilervars.sh ia32

The command which mpif90 points me to /usr/bin
So for in shell I did this

./configure --prefix=/usr/bin CC=icc CXX=icpc F77=ifort FC=ifort
make all install

However when I key in mpif90 in shell again this comes out,

gfortran: no input files

Please do provide me with more advice on how to deal with this.

Thanks.
0 Kudos
Ron_Green
Moderator
1,469 Views
mpif90 is just a simple script file. Open it up in an editor and see what is happening with it. I believe it's a bash script, and if so, add -x on the first line of this file:

#!/bin/bash -x

this echoes each command in the script and can give a clue to what's going on.

Next, do you have a .bash_profile file in your home dir? Something like this:

more .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME



Try creating this if you don't have it.

Oh and a really stupid question: you are using bash as your shell, right?
echo $0
prints out your shell.

Also, during the configure, capture the output and scan through it to confirm that it finds the Intel compilers and doesn't fall back to gfortran and gcc g++

ron
0 Kudos
TimP
Honored Contributor III
1,468 Views
It's not a good idea to build a new MPI for installation in /usr/bin while the one which comes with your linux distro is already installed there. Should you wish to follow that path, you should use your package installer to remove all MPI components first.
I've never been so hasty as to try to make OpenMPI build and install all in one step, but that should work. Don't forget to check that everything including install step completed successfully.

The standard advice, which you quoted originally, should lead to your new MPI being installed in /usr/local/bin.
Then you would set PATH and LD_LIBRARY_PATH yourself in the shell which opens on each node, so as to put that one ahead of the default one.
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib????
I don't know which library path it would be, depending on whether you are building 32- or the normal 64-bit MPI, if you are using a non-standard distro like Debian/Ubuntu.

If you don't like building MPI yourself, avoiding that is part of the value-add of Intel Cluster Studio.
OpenMPI instructions are exceptionally good for an open source application which builds with Intel compilers, as is their email support forum.
0 Kudos
Amos_Leffler
Beginner
1,468 Views

All of these messages are quite old.  I am having the same problem installing openmpi using MAC OS* with Lion OS.  In fact I cant seem to download the intel files because I done have the password.  Has there been any more recent work on this problem?

Amos Leffler at amosleff@gmail.com

0 Kudos
Reply