|
The Basic Linear Algebra Communication Subprograms (BLACS) project is
an ongoing investigation whose purpose is to create a linear algebra
oriented message passing interface that may be implemented efficiently
and uniformly across a large range of distributed memory platforms. It
is available from:
http://www.netlib.org/blacs/
IMPORTANT: If you are using
the GNU compilers, you MUST
read
the BLACS errata about the g77 compiler!
Be sure to also check the
general errata
page on that site for all the latest information, patches, and
updates.
At the time of this writing, the version of BLACS available is 1.1,
and the patch level is 03.
The blacs_install.ps file (available from that web
site) describes how to build BLACS, so we won't repeat much of it here
(especially since it might change in future versions). These
instructions only pertain to making LAM work correctly with
BLACS.
- After selecting the appropriate starting
Bmake.inc, make the following changes to Sections 1,
2, and 3. The example below is from the Bmake.MPI-SUN4SOL2;
your Bmake.inc file may be different.
# Section 1:
# The MPIINCdir macro is used to link in mpif.h and
# must contain the location of LAM's mpif.h.
# The MPILIBdir and MPILIB macros are irrelevant
# and should be left empty.
MPIdir = /path/to/lam-7.1.4
MPILIBdir =
MPIINCdir = $(MPIDIR)/include
MPILIB =
# Section 2:
# If SYSINC has "-I$(MPIINCdir)" in it, remove it.
# In most cases, SYSINC will then be empty:
SYSINC =
# The TRANSCOMM macro should have the following value:
TRANSCOMM = -DUseMpi2
# Section 3:
# You may need to specify the full path to
# mpif77 / mpicc if they aren't already in
# your path.
F77 = mpif77
F77LOADFLAGS =
CC = mpicc
CCLOADFLAGS =
- After making these changes, go to
BLACS/INSTALL
directory, and "make xintface". The provided Makefile now compiles
xintface with the correct settings, and running it will
give you the value for INTFACE below.
# Result of running the xintface program ("-DAdd_" was the output
# from when LAM/MPI was compiled with the Solaris Forte compilers;
# your output may be different, depending on the compilers that
# LAM/MPI was compiled with):
INTFACE = -DAdd_
The remainder of the values are fairly obvious and irrelevant to LAM;
you can set whatever optimization level you want, etc.
If you follow the rest of the instructions for building, BLACS
will build correctly and use LAM as its MPI communication layer.
|