This repository is for compiling open-source software SeisSol on KAUST Super Computer Facility using GCC:
module swap PrgEnv-cray PrgEnv-gnu
module load cray-hdf5-parallel
export HOMESW=/project/k1587/kadek/myLibs/installSeisSol
export PATH=$HOMESW/bin:$PATH
export LIBRARY_PATH=$HOMESW/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=$HOMESW/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$HOMESW/lib/pkgconfig:$PKG_CONFIG_PATH
export CMAKE_PREFIX_PATH=$HOMESW:$CMAKE_PREFIX_PATH
export EDITOR=vi
export CPATH=$HOME/include:$CPATH
wget https://syncandshare.lrz.de/dl/fiJNAokgbe2vNU66Ru17DAjT/netcdf-4.6.1.tar.gz
tar -xaf netcdf-4.6.1.tar.gz
cd netcdf-4.6.1/
CFLAGS="-fPIC ${CFLAGS}" CC=h5pcc ./configure --enable-shared=no --prefix=$HOMESW --disable-dap
make -j8
make install
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz
tar -xf eigen-3.4.0.tar.gz
cd eigen-3.4.0
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOMESW
make install
cd ../..
git clone --branch 1.17 https://github.com/hfp/libxsmm
cd libxsmm
make generator
cp bin/libxsmm_gemm_generator $HOMESW/bin/
git clone https://github.com/peterwauligmann/PSpaMM.git
ln -s $(pwd)/PSpaMM/pspamm.py bin/pspamm.py
wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz
tar -xvf parmetis-4.0.3.tar.gz
cd parmetis-4.0.3/
edit ./metis/include/metis.h IDXTYPEWIDTH to be 64 (default is 32).
make config cc=cc cxx=CC prefix=$HOMESW
make install
cp build/Linux-x86_64/libmetis/libmetis.a $HOMESW/lib
cp metis/include/metis.h $HOMESW/include
cd ..
(cd $(mktemp -d) && wget -qO- https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2-Linux-x86_64.tar.gz | tar -xvz -C "." && mv "./cmake-3.16.2-Linux-x86_64" "${HOMESW}/bin/cmake")
export PKG_CONFIG_PATH=$HOMESW/ASAGI/build/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$HOMESW/ASAGI/build/lib:$LD_LIBRARY_PATH
If you haven't install ASAGI, please follow this step.
git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
mkdir build && cd build
CC=cc CXX=CC FC=ftn $HOMESW/bin/cmake/bin/cmake ../ -DCMAKE_INSTALL_PREFIX=$HOMESW
make -j4
make install
cd ../..
git clone https://github.com/uphoffc/ImpalaJIT.git
cd ImpalaJIT
mkdir build && cd build
CC=cc CXX=CC FC=ftn $HOMESW/bin/cmake/bin/cmake ../ -DCMAKE_INSTALL_PREFIX=$HOMESW
make -j4
make install
cd ../..
curl -R -O http://www.lua.org/ftp/lua-5.4.4.tar.gz
tar zxf lua-5.4.4.tar.gz
cd lua-5.4.4
edit INSTALL_TOP
to $HOMESW on Makefile
make
make install
git clone https://github.com/SeisSol/easi.git
cd easi
mkdir build && cd build
CC=cc CXX=CC FC=ftn $HOMESW/bin/cmake/bin/cmake ../ -DCMAKE_PREFIX_PATH=$HOMESW -DCMAKE_INSTALL_PREFIX=$HOMESW -DASAGI=ON -DIMPALAJIT=ON
make -j4 install
export CMAKE_PREFIX_PATH=$HOMESW
git clone https://github.com/SeisSol/SeisSol.git
cd SeisSol
git submodule update --init
mkdir build-release && cd build-release
CC=cc CXX=CC FC=ftn CMAKE_PREFIX_PATH=$HOMESW:$CMAKE_PREFIX_PATH PKG_CONFIG_PATH=$HOMESW/lib/pkgconfig/:$PKG_CONFIG_PATH $HOMESW/bin/cmake/bin/cmake -DNETCDF=ON -DMETIS=ON -DCOMMTHREAD=OFF -DASAGI=OFF -DHDF5=ON -DCMAKE_BUILD_TYPE=Release -DTESTING=OFF -DLOG_LEVEL=warning -DLOG_LEVEL_MASTER=info -DHOST_ARCH=hsw -DPRECISION=double ..
$HOMESW/bin/cmake/bin/ccmake .
ADDRESS_SANITIZER_DEBUG OFF
ASAGI ON
CMAKE_BUILD_TYPE Release
CMAKE_INSTALL_PREFIX /usr/local
COMMTHREAD OFF
COVERAGE OFF
DEVICE_ARCH none
DEVICE_BACKEND none
DYNAMIC_RUPTURE_METHOD quadrature
EQUATIONS elastic
Eigen3_DIR /project/k1587/kadek/myLibs/installSeisSol/share/eigen3/cmake
GEMM_TOOLS_LIST LIBXSMM,PSpaMM
HDF5 ON
HOST_ARCH hsw
INTEGRATE_QUANTITIES OFF
LIKWID OFF
LOG_LEVEL warning
LOG_LEVEL_MASTER info
Libxsmm_executable_PROGRAM /project/k1587/kadek/myLibs/installSeisSol/bin/libxsmm_gemm_generator
MEMKIND OFF
MEMORY_LAYOUT auto
METIS ON
MINI_SEISSOL ON
MPI ON
NETCDF ON
NUMA_AWARE_PINNING ON
NUMA_ROOT_DIR /usr
NUMBER_OF_FUSED_SIMULATIONS 1
NUMBER_OF_MECHANISMS 0
OPENMP ON
ORDER 4
PLASTICITY_METHOD nb
PRECISION double
PROXY_PYBINDING OFF
PSpaMM_PROGRAM /project/k1587/kadek/myLibs/installSeisSol/bin/pspamm.py
SIONLIB OFF
TESTING OFF
TESTING_GENERATED OFF
USE_IMPALA_JIT_LLVM OFF
easi_DIR /project/k1587/kadek/myLibs/installSeisSol/lib64/cmake/easi
impalajit_DIR /project/k1587/kadek/myLibs/installSeisSol/lib64/cmake/impalajit
netCDF_DIR netCDF_DIR-NOTFOUND
yaml-cpp_DIR /project/k1587/kadek/myLibs/installSeisSol/share/cmake/yaml-cpp
make -j24
#!/bin/bash
#SBATCH --job-name=TPVtest
#SBATCH --partition=workq
#SBATCH --export=ALL
#SBATCH --chdir=/project/k1488/kadek/tpvTest
#SBATCH --output=logs/dfn.o%j
#SBATCH --error=logs/dfn.e%j
#SBATCH --nodes=32
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=64
#SBATCH --time=03:00:00
#SBATCH --no-requeue
#SBATCH --account=k1488
date
echo 'working directory is'
pwd
echo 'printing modules'
module swap PrgEnv-cray PrgEnv-intel
module load cdt
export MP_SINGLE_THREAD=no
export OMP_PLACES="cores(62)"
export OMP_NUM_THREADS=62
export KMP_AFFINITY=compact,granularity=thread
export MPICH_MAX_THREAD_SAFETY=multiple
export XDMFWRITER_ALIGNMENT=8388608
export XDMFWRITER_BLOCK_SIZE=8388608
export SC_CHECKPOINT_ALIGNMENT=8388608
export SEISSOL_CHECKPOINT_ALIGNMENT=8388608
export SEISSOL_CHECKPOINT_DIRECT=1
export ASYNC_MODE=THREAD
export ASYNC_BUFFER_ALIGNMENT=8388608
export LD_LIBRARY_PATH=/project/k1488/kadek/myLibs/ASAGI/build/lib:$LD_LIBRARY_PATH
echo 'setting stripe size'
lfs setstripe -c 144 output