The MKL Library and Open MPI 3.2.1 bin and library paths are exported in to PATH and LD_LIBRARY_PATH environment variables Apriori.
Hwloc 2.1 :
#!/bin/bash
### Source Code https://www.open-mpi.org/software/hwloc/v2.1/
umask 022
./configure --prefix=/usr/PaStiX/hwloc_i8 --enable-static=yes CC=gcc CXX=g++
make -j2
make install
Scotch 6.0.8
#!/bin/bash
### Source Code https://gforge.inria.fr/frs/download.php/file/38114/scotch_6.0.8.tar.gz
umask 022
cd src
ln -sf Make.inc/Makefile.inc.x86-64_pc_linux2 Makefile.inc
sed -i '/CFLAGS/ s/$/ -DINTSIZE64/' Makefile.inc
make -j8 scotch
make -j8 esmumps
make prefix=/usr/PaStiX/scotch_i8 install
parsec:
#!/bin/bash
### Source Code - git clone https://bitbucket.org/mfaverge/parsec.git
rm -rf build
if ! [[ -d build ]]; then
mkdir build
fi
cd build
INSTALLPATH="/usr/PaStiX/parsec_i8"
umask 022
# fixes
sed -i '/-1 == cpu/i return cpu;' ../parsec/bindthread.c
cmake \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_Fortran_COMPILER=gfortran \
-DPARSEC_DIST_WITH_MPI=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/CUDA/v10.2/cuda-10.2 \
-DCUDA_DIR=/usr/CUDA/v10.2/cuda-10.2 \
-DCMAKE_CUDA_HOST_COMPILER=gcc \
-DPARSEC_GPU_WITH_CUDA=ON \
-DCUDA_USE_STATIC_CUDA_RUNTIME=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${INSTALLPATH} \
-DPARSEC_WITH_DEVEL_HEADERS=ON \
-DCMAKE_LIBRARY_PATH=/usr/CUDA/v10.2/cuda-10.2/lib64/stubs \
-DHWLOC_DIR=/usr/PaStiX/hwloc_i8 \
-DCMAKE_C_FLAGS="-fopenmp" \
..
make -j8
make install
Pastix
#!/bin/bash
### Source Code - git clone https://github.com/Dhondtguido/PaStiX4CalculiX
###
rm -rf build
if ! [[ -d build ]]; then
mkdir build
fi
cd build
export LD_RUN_PATH=$LD_RUN_PATH:/usr/PaStiX/hwloc_i8/lib:/usr/PaStiX/parsec_i8/lib:/usr/PaStiX/scotch_i8/lib
export INCLUDE_PATH=$INCLUDE_PATH:/usr/PaStiX/hwloc_i8/include:/usr/PaStiX/parsec_i8/include:/usr/PaStiX/scotch_i8/include
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/PaStiX/hwloc_i8/lib/pkgconfig:/usr/PaStiX/parsec_i8/lib/pkgconfig
export PATH=$PATH:/usr/PaStiX/scotch_i8/bin:/usr/PaStiX/parsec_i8/bin:/usr/PaStiX/hwloc_i8/bin
cmake \
-DHWLOC_DIR=/usr/PaStiX/hwloc_i8 \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/CUDA/v10.2/cuda-10.2 \
-DCMAKE_INSTALL_PREFIX=/usr/PaStiX/pastix_i8 \
-DCMAKE_BUILD_TYPE=Release \
-DPASTIX_WITH_PARSEC=ON \
-DPARSEC_DIR=/usr/PaStiX/parsec_i8 \
-DSCOTCH_DIR=/usr/PaStiX/scotch_i8 \
-DPASTIX_WITH_CUDA=OFF \
-DCUDA_DIR=/usr/CUDA/v10.2/cuda-10.2 \
-DPASTIX_ORDERING_SCOTCH=ON \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_Fortran_COMPILER=gfortran \
-DCMAKE_LIBRARY_PATH=/usr/CUDA/v10.2/cuda-10.2/lib64/stubs \
-DPASTIX_WITH_MPI=ON \
-DCMAKE_C_FLAGS="-fopenmp -I/usr/CUDA/v10.2/cuda-10.2/include -I/opt/ohpc/pub/mpi/mpich-gnu8-ohpc/3.2.1/include" \
..
make -j8
make install
Makefile for CCX 2.18 with Pastix :
CFLAGS = -Wall -O2 -fopenmp -fpic -I /usr/SPOOLES_2_2 -I$(PASTIX_INCLUDE) -I /opt/ohpc/pub/mpi/mpich-gnu8-ohpc/3.2.1/include -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DLONGLONG -DPASTIX -DPASTIX_FP32 -DUSE_MT=1 -std=c99 -D_POSIX_C_SOURCE=199309L
FFLAGS = -Wall -O2 -fopenmp -fpic -fdefault-integer-8
CC=cc
FC=gfortran
.c.o :
$(CC) $(CFLAGS) -c $<
.f.o :
$(FC) $(FFLAGS) -c $<
include Makefile.inc
SCCXMAIN = ccx_2.18.c
OCCXF = $(SCCXF:.f=.o)
OCCXC = $(SCCXC:.c=.o)
OCCXMAIN = $(SCCXMAIN:.c=.o)
DIR=/usr/SPOOLES_2_2
MKL_LIB=/LPP/OPT/x86_64/intel/parallel_studio_xe_2019/mkl/lib/intel64
PASTIX_INCLUDE=/usr/PaStiX/pastix_i8/include
PASTIX_LIBS=/usr/PaStiX/hwloc_i8/lib/libhwloc.so $(MKL_LIB)/libmkl_intel_lp64.so $(MKL_LIB)/libmkl_sequential.so $(MKL_LIB)/libmkl_core.so /lib64/libm.so \
/usr/PaStiX/pastix_i8/lib/libpastix.a /opt/ohpc/pub/mpi/mpich-gnu8-ohpc/3.2.1/lib/libmpi.a -lpthread -lm /usr/PaStiX/pastix_i8/lib/libspm.a \
/usr/PaStiX/pastix_i8/lib/libpastix_parsec.a /usr/PaStiX/pastix_i8/lib/libpastix_kernels.a -lrt \
/usr/PaStiX/parsec_i8/lib/libparsec.so \
/usr/PaStiX/scotch_i8/lib/libscotch.a /usr/PaStiX/scotch_i8/lib/libscotcherrexit.a -lpthread -lz -lm /usr/lib64/libstdc++.so.6 /usr/lib64/libgomp.so.1
LIBS = \
$(DIR)/MT/src/spoolesMT.a \
$(DIR)/spooles.a \
/usr/ARPACK/libarpack_x86.a \
$(PASTIX_LIBS) \
-lpthread -lm -lc
export LDFLAGS="-Wl,--copy-dt-needed-entries"
ccx_2.18_i8: $(OCCXMAIN) ccx_2.18.a $(LIBS)
./date.pl; $(CC) $(CFLAGS) -c ccx_2.18.c; $(FC) -Wall -O2 -o $@ \
$(OCCXMAIN) ccx_2.18.a $(LIBS)
ccx_2.18.a: $(OCCXF) $(OCCXC)
ar vr $@ $?