Skip to content
Snippets Groups Projects
Commit ded458ea authored by René Heß's avatar René Heß
Browse files

Add readme and script to apply patches

parent 04bc96b6
No related branches found
No related tags found
No related merge requests found
README.md 0 → 100644
# dune-perftool
dune-perftool is an active research code 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 of interface stability ;).
## Dependencies
dune-perftool depends on the following software packages:
* You need a working [dune-pdelab][1].
* We use [dune-testtools][2] for ini file variablility.
* The [Integer Set Library][3] needs to be installed. Using the
package manager is probably the easiest way.
## Cloning and Patching
We use several sumbodules 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:
```
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][0] 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][4] 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_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
[0]: https://git-lfs.github.com/
[1]: https://gitlab.dune-project.org/pdelab/dune-pdelab
[2]: https://gitlab.dune-project.org/quality/dune-testtools
[3]: http://isl.gforge.inria.fr/
[4]: https://www.dune-project.org/doc/installation/
#!/bin/bash
pushd python/loopy
git apply ../../patches/loopy/Current.patch
git apply ../../patches/loopy/0001-Allow-using-globalargs-as-base-storage.patch
popd
pushd dune/perftool/vectorclass
git apply ../../../patches/vectorclass/0001-Better-implementation-of-horizontal_add.patch
popd
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment