19#ifdef DEAL_II_WITH_TASKFLOW
22# include <taskflow/algorithm/for_each.hpp>
23# include <taskflow/taskflow.hpp>
26#ifdef DEAL_II_WITH_TBB
27# include <tbb/blocked_range.h>
28# include <tbb/parallel_for.h>
29# include <tbb/parallel_reduce.h>
30# include <tbb/partitioner.h>
32# include <boost/range/iterator_range.hpp>
40 namespace VectorImplementation
54 namespace SparseMatrixImplementation
72#ifdef DEAL_II_WITH_TBB
74 : my_partitioner(
std::make_shared<tbb::affinity_partitioner>())
84 "A vector partitioner goes out of scope, but "
85 "it appears to be still in use."));
90 std::shared_ptr<tbb::affinity_partitioner>
93 std::lock_guard<std::mutex> lock(
mutex);
95 return std::make_shared<tbb::affinity_partitioner>();
105 const std::shared_ptr<tbb::affinity_partitioner> &p)
109 std::lock_guard<std::mutex> lock(
mutex);
std::shared_ptr< tbb::affinity_partitioner > acquire_one_partitioner()
void release_one_partitioner(const std::shared_ptr< tbb::affinity_partitioner > &p)
std::shared_ptr< tbb::affinity_partitioner > my_partitioner
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define AssertNothrow(cond, exc)
static ::ExceptionBase & ExcInternalError()
unsigned int minimum_parallel_grain_size
unsigned int minimum_parallel_grain_size