Shown below is a sample makefile that demonstrates the path and usage of
the libraries :
- The MPI trace library
- BLAS Basic Linear Algebra Subroutines
- LAPACK (also requires BLAS lib)
- BLACS ( communication module required for ScaLAPACK)
- ScaLAPACK ( requires BLAS, LAPACK, and BLACS)
This ScaLAPACK is built from the source download from
www.netlib.org. The makefile (not shown) used to build ScaLAPACK is modified from make.sp2. Please feel free to use the built package at its current location.
Email Kadin Tseng (kadin@bu.edu) or call him at 617-353-8294 if you need help.
# sample makefile to demonstrate ScaLAPACK usage
SHELL=/bin/sh
.SUFFIXES: .o .f90 .f
SRC_FILES = a.f90 b.f90 c.f90
OBJ_FILES = $(SRC_FILES:.f90=.o)
FLAG = -qsuffix=f=f90
FC = blrts_xlf90 $(FLAG)
ABI = -qarch=440 -qtune=440 -qmaxmem=64000
MPI_PATH = /bgl/BlueLight/ppcfloor/bglsys
MPI_INC = -I${MPI_PATH}/include
MPI_LIB = -L$(MPI_PATH)/lib -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts
MPI_TRACE_LIB = -L/bgl/local/lib/mpitrace -lmpitrace_f
BLAS_LIB = /project/scv/kadin/packages/LAPACK_bgl/blas_BGL.a
LAPACK_LIB = /project/scv/kadin/packages/LAPACK_bgl/lapack_BGL.a
BLACS_LIB = /project/scv/kadin/packages/BLACS/LIB/blacs_MPI-BGL-0.a \
/project/scv/kadin/packages/BLACS/LIB/blacsF77init_MPI-BGL-0.a \
$(MPI_LIB) \
/project/scv/kadin/packages/BLACS/LIB/blacsCinit_MPI-BGL-0.a \
/project/scv/kadin/packages/BLACS/LIB/blacs_MPI-BGL-0.a
SCALAPACK_LIB = -L/project/scv/kadin/packages/SCALAPACK/ -lscalapack
LIB = $(MPI_TRACE_LIB) $(SCALAPACK_LIB) $(MPI_LIB) $(BLACS_LIB) $(BLAS_LIB)
OPT = -O3 -qhot
default: myexample
all: myexample
myexample: $(OBJ_FILES)
$(FC) $(ABI) $(OPT) -o ../bin/$@ $(OBJ_FILES) $(LIB)
clean:
rm -f $(OBJ_FILES)
cleanall:
rm -f $(OBJ_FILES)
rm -f myexample
.f90.o:
$(FC) $(ABI) $(OPT) $(MPI_INC) -c $*.f90
.f.o:
$(FC) $(ABI) $(OPT) $(MPI_INC) -c $*.f