Skip to content
Snippets Groups Projects
Commit c68964ab authored by Jorrit Fahlke's avatar Jorrit Fahlke
Browse files

Merge branch 'master' into feature/ci

parents 7e05ab6d a839cd5a
No related branches found
No related tags found
No related merge requests found
Copyright by Dominic Kempf, 2015. Copyright by Dominic Kempf, René Heß 2015-2017.
The following files are copyrighted by Agner Fog, 2012-2015: The following files are copyrighted by Agner Fog, 2012-2015:
......
README.md 0 → 100644
# 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][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 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][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_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
[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