Skip to content
Snippets Groups Projects

dune-perftool

dune-perftool is an active research project with the goal of generating high-performance integration kernels for dune-pdelab.

Note: Due to the research character of the code things will change a lot and there is no guarantee for interface stability ;).

pipeline status

Dependencies

dune-perftool depends on the following software packages:

Cloning and Patching

We use several submodules so you should clone with the --recursive option:

git clone --recursive ssh://git@parcomp-git.iwr.uni-heidelberg.de:20022/dominic/dune-perftool.git

or

git clone --recursive https://parcomp-git.iwr.uni-heidelberg.de/dominic/dune-perftool.git

If you have a feature branch feature/my-branch where you change the submodules of dune-perftool and you want to test your branch it makes sense to checkout this branch directly in a fresh clone:

git clone --recursive -b feature/my-branch ssh://git@parcomp-git.iwr.uni-heidelberg.de:20022/dominic/dune-perftool.git

Some tests compare the vtkoutput to a reference vtk output. If you want to have all tests passing you need to install git-lfs before cloning. Cloning via ssh and using a ssh-agent are recommended in this case:

ssh-add
git clone --recursive ssh://git@parcomp-git.iwr.uni-heidelberg.de:20022/dominic/dune-perftool.git

After cloning dune-perftool you need apply some patches:

  • Go to the base folder of dune-perftool and run patches/apply_patches.sh. This applies patches to the submodules.

    cd dune-perftool/
    ./patches/apply_patches.sh
  • Besides that you need to apply the patch dune-perftool/patches/dune-geometry/quadrule_operator_counting_compatible.patch in dune-geometry.

Building dune-perftool

Building dune-perftool is done through the Dune build-system using cmake. See the Dune homepage for further details. You need to set the options

-DDUNE_PYTHON_ALLOW_GET_PIP=1
-DDUNE_PYTHON_VIRTUALENV_SETUP=1

in your options file. Your options file could for example look like the following:

CMAKE_FLAGS="
  -DDUNE_PYTHON_FORCE_PYTHON3=1
  -DDUNE_PYTHON_ALLOW_GET_PIP=1
  -DDUNE_PYTHON_VIRTUALENV_SETUP=1
  -DCMAKE_BUILD_TYPE=Release
  -DCMAKE_CXX_FLAGS='-march=native -ffast-math'
  -DDUNE_SYMLINK_TO_SOURCE_TREE=1
"

MAKE_FLAGS="-j2"

Building and Running the Tests

You can build and run the tests via:

cd path/to/dune-perftool/build/directory
make build_tests
ctest

Links