Skip to content

Latest commit

 

History

History
212 lines (175 loc) · 10.7 KB

ShaheenGCC.md

File metadata and controls

212 lines (175 loc) · 10.7 KB

install SeisSol Shaheen II

This repository is for compiling open-source software SeisSol on KAUST Super Computer Facility using GCC:

Compiling SeisSol cmake on Shaheen

load necessary modules

module swap PrgEnv-cray PrgEnv-gnu
module load cray-hdf5-parallel

set path

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

Netcdf

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

Eigen3

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 ../..

LIBXSMM

git clone --branch 1.17 https://github.com/hfp/libxsmm
cd libxsmm
make generator
cp bin/libxsmm_gemm_generator $HOMESW/bin/

PSpaMM

git clone https://github.com/peterwauligmann/PSpaMM.git
ln -s $(pwd)/PSpaMM/pspamm.py bin/pspamm.py

ParMetis

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 ..

CMAKE

(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")

ASAGI path

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.

yaml-cpp

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 ../..

ImpalaJIT

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 ../..

LUA

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

easi

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

SeisSol

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                                                                                   

Compile

make -j24

Configuration for job submission

#!/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