17 #include <deal.II/base/parallel.h> 20 DEAL_II_NAMESPACE_OPEN
24 namespace VectorImplementation
34 unsigned int minimum_parallel_grain_size = 4096;
38 namespace SparseMatrixImplementation
48 unsigned int minimum_parallel_grain_size = 256;
56 #ifdef DEAL_II_WITH_THREADS 57 TBBPartitioner::TBBPartitioner()
58 : my_partitioner(
std::make_shared<tbb::affinity_partitioner>())
64 TBBPartitioner::~TBBPartitioner()
68 "A vector partitioner goes out of scope, but " 69 "it appears to be still in use."));
74 std::shared_ptr<tbb::affinity_partitioner>
75 TBBPartitioner::acquire_one_partitioner()
77 std::lock_guard<std::mutex> lock(mutex);
79 return std::make_shared<tbb::affinity_partitioner>();
82 return my_partitioner;
88 TBBPartitioner::release_one_partitioner(
89 std::shared_ptr<tbb::affinity_partitioner> &p)
91 if (p.get() == my_partitioner.get())
93 std::lock_guard<std::mutex> lock(mutex);
98 TBBPartitioner::TBBPartitioner() =
default;
105 DEAL_II_NAMESPACE_CLOSE
#define AssertNothrow(cond, exc)
static ::ExceptionBase & ExcInternalError()