1. You have to compile OpenMPI 1.4.x with g77 and gfortran. I’m compiling with OpenIB and Torque as well
./configure --prefix=/usr/local/mpi/gnu-g77/ \
F77=g77 FC=gfortran \
--with-openib \
--with-openib-libdir=/usr/lib64 \
--with-tm=/opt/torque
2. Download BLACS from www.netlib.org/blacs. Remember to download both mpiblacs.tgz and the mpiblacs-patch03.tgz
# cd /root
# tar -xzvf mpiblacs.tgz
# tar -xzvf mpiblacs-patch03.tgz
# cd BLACS
# cp ./BMAKES/BMake.MPI-LINUX Bmake.inc
3. Edit Bmake.inc according to the recommendation from OpenMPI FAQ
# Section 1:
# Ensure to use MPI for the communication layer
COMMLIB = MPI
# The MPIINCdir macro is used to link in mpif.h and
# must contain the location of Open MPI's mpif.h.
# The MPILIBdir and MPILIB macros are irrelevant
# and should be left empty.
MPIdir = /path/to/openmpi-1.4.3
MPILIBdir =
MPIINCdir = $(MPIdir)/include
MPILIB =
# Section 2:
# Set these values:
SYSINC =
INTFACE = -Df77IsF2C
SENDIS =
BUFF =
TRANSCOMM = -DUseMpi2
WHATMPI =
SYSERRORS =
# Section 3:
# You may need to specify the full path to
# mpif77 / mpicc if they aren't already in
# your path. IF not type the whole path out.
F77 = /usr/local/mpi/gnu-g77/bin/mpif77
F77LOADFLAGS =
CC = /usr/local/mpi/gnu-g77/bin/mpicc
CCLOADFLAGS =
4. Following the recommendation from BlACS Errata (Necessary flags for compiling the BLACS tester with g77)
blacstest.o : blacstest.f
$(F77) $(F77NO_OPTFLAGS) -c $*.f
to:
blacstest.o : blacstest.f
$(F77) $(F77NO_OPTFLAGS) -fno-globals -fno-f90 -fugly-complex -w -c $*.f
5. Compile the Blacs tests. You should see
# cd /root/BLACS/TESTING
# make clean
# make
You should see xCbtest_MPI-LINUX-1 and xFbtest_MPI-LINUX-1
6. Tun the Tests
# mpirun -np 5 xCbtest_MPI-LINUX-0
# mpirun -np 5 xFbtest_MPI-LINUX-0
7. If the test is successful, you may wish to copy the BLACS library to /usr/local/lib. But I like to separate my compiled libraries separately to /usr/local/blacs/lib
# cp /root/BLACS/LIB*.a /usr/local/blacs/lib
# chmod 555 /usr/local/blacs/lib/*.a