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 ;).
Dependencies
dune-perftool depends on the following software packages:
-
You need a working dune-pdelab.
-
We use dune-testtools for ini file variablility.
-
The Integer Set Library needs to be installed. Using the package manager is probably the easiest way.
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