Pastix4Calculix - Build and installation issues

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 $@ $?
3 Likes