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:
IMPORTANT: If you are using
the GNU compilers, you MUST
the BLACS errata about the
Be sure to also check the
page on that site for all the latest information, patches, and
At the time of this writing, the version of BLACS available is 1.1,
and the patch level is 03.
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
- After selecting the appropriate starting
Bmake.inc, make the following changes to Sections 1,
2, and 3. The example below is from the
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
MPIINCdir = $(MPIDIR)/include
# Section 2:
# If SYSINC has "-I$(MPIINCdir)" in it, remove it.
# In most cases, SYSINC will then be empty:
# 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
CC = mpicc
- After making these changes, go to
directory, and "make xintface". The provided Makefile now compiles
xintface with the correct settings, and running it will
give you the value for
# 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.