Compiling and running SeisSol

Compiling SeisSol

Get the latest version of SeisSol on git by cloning the whole repository including all submodules:

git clone --recursive https://github.com/SeisSol/SeisSol.git

If you have compiled seissol-env with spack, load the module and compile SeisSol with (e.g.):

mkdir build-release && cd build-release
CC=mpicc CXX=mpiCC FC=mpif90 cmake -DNUMA_AWARE_PINNING=ON -DASAGI=ON -DCMAKE_BUILD_TYPE=Release -DHOST_ARCH=skx -DPRECISION=double -DORDER=4 -DGEMM_TOOLS_LIST=LIBXSMM,PSpaMM ..
make -j 4

Please adapt CC, CXX and FC to the mpi compilers you used for compiling the dependencies. In case of a manual installation of dependencies, you may have to prepend CMAKE_PREFIX_PATH and PKG_CONFIG_PATH to the cmake command, e.g. for dependencies installed in ${HOME}:

CMAKE_PREFIX_PATH=~:$CMAKE_PREFIX_PATH PKG_CONFIG_PATH=~/lib/pkgconfig/:$PKG_CONFIG_PATH CC=...

It is also important that the executables of the matrix multiplication generators (Libxsmm, PSpaMM) have to be in $PATH.

You can also compile just the proxy by make SeisSol-proxy or only SeisSol with make SeisSol-bin

Note: CMake tries to detect the correct MPI wrappers.

You can also run ccmake .. to see all available options and toggle them.

An example of ccmake with some options

Compile with Score-P

The Score-P measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling and event tracing of HPC applications. To compile with Score-P, use:

SCOREP_WRAPPER=off CXX=scorep-mpic++ CC=scorep-mpicc FC=scorep-mpif90 cmake ..
SCOREP_WRAPPER_INSTRUMENTER_FLAGS="--user --thread=omp --nomemory" make

Running SeisSol

  1. Follow the instructions on Configuration.

  2. Run SeisSol version of interest. To run the example: ./SeisSol_Release_.... parameter.par

Further information regarding meshing and parameter files etc. can be found in the documentation folder. See also A first example.