Feature/multithreaded assembly using a coloring scheme
-
Multithreading backends and a default backend selection mechanism
-
Backend can also manually selected by the user by setting
DUMUX_MULTITHREADING_BACKEND
via CMake -
Type of selected backend is reported by CMake on configure
-
Backend can also be changed "interactively" through
ccmake
by editing the cache -
Add a simple generic
Dumux::parallelFor
with one overload so far fully parallelizable loops over integer ranges -
Implements coloring for CCTPfa and Box to enable parallel assembly over colored subsets
-
Enables parallel assembly per default if coloring is supported for disc method and a parallel backend is found
-
DUMUX_NUM_THREADS
can control the number of threads when TBB or OpenMP or Kokkos is the backend -
Support for backends
TBB
,OpenMP
,Cpp
(STL paralell algorithms),Kokkos
,Serial
(strictly serial execution) -
Bugfix in LoggingParamerTree which was not thread-safe (although the
const
interfaces implied so) -
Use Dumux::initialize in all tests which enables the
DUMUX_NUM_THREADS
control parameter -
Update examples
-
Python bindings always use the Serial backend for now (the current implementation of the wrapper code is not thread-safe)