The Scalable LAPACK (ScaLAPACK) library includes a subset of LAPACK
routines redesigned for distributed memory MIMD parallel computers. It
is currently written in a Single-Program-Multiple-Data style using
explicit message passing for interprocessor communication. It assumes
matrices are laid out in a two-dimensional block cyclic
decomposition. It is avaialble from:
At the time of this writing, the version of ScaLAPACK available is 1.7.
scalapack_install.ps file (available from that
web site) describes how to build ScaLAPACK, 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 ScaLAPACK.
# Make sure you follow the instructions to
# build BLACS with LAM, and put its location
# in the following.
BLACSdir = $(HOME)/BLACS/LIB
# The MPI section is commented out.
# Uncomment it. The wrapper compiler will
# handle SMPLIB, so make it blank. The rest
# are correct as is.
USEMPI = -DUsingMpiBlacs
BLACSFINIT = $(BLACSdir)/blacsF77init_MPI-$(PLAT)-$(BLACSDBGLVL).a
BLACSCINIT = $(BLACSdir)/blacsCinit_MPI-$(PLAT)-$(BLACSDBGLVL).a
BLACSLIB = $(BLACSdir)/blacs_MPI-$(PLAT)-$(BLACSDBGLVL).a
TESTINGdir = $(home)/TESTING
# The PVMBLACS setup needs to be commented
#SMPLIB = $(PVM_ROOT)/lib/$(PLAT)/libpvm3.a -lnsl -lsocket
#BLACSLIB = $(BLACSdir)/blacs_PVM-$(PLAT)-$(BLACSDBGLVL).a
#TESTINGdir = $(HOME)/pvm3/bin/$(PLAT)
# Make sure that the BLASLIB points to the
# right place. We built this example on Solaris, hence
# the name below. The Linux version of the library
# (as of this writing) is blas_LINUX.a.
BLASLIB = $(LAPACKdir)/blas_solaris.a
# You can also use "hf77 / hcc" here, but
# LAM 6.2 users will need to specify "-lmpi"
# in the "F77LOADFLAGS" and "CCLOADFLAGS".
# You may need to specify the full path to
# mpif77 / mpicc if they aren't already in
# your path.
F77 = mpif77
CC = mpicc
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, ScaLAPACK
will build correctly and use LAM as its MPI communication layer.