Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Private Attributes | List of all members
parallel::internal::TBBPartitioner Class Reference

#include <deal.II/base/parallel.h>

Public Member Functions

 TBBPartitioner ()
 
 ~TBBPartitioner ()
 
std::shared_ptr< tbb::affinity_partitioner > acquire_one_partitioner ()
 
void release_one_partitioner (std::shared_ptr< tbb::affinity_partitioner > &p)
 

Private Attributes

std::shared_ptr< tbb::affinity_partitioner > my_partitioner
 
bool in_use
 
std::mutex mutex
 

Detailed Description

Definition at line 729 of file parallel.h.

Constructor & Destructor Documentation

◆ TBBPartitioner()

parallel::internal::TBBPartitioner::TBBPartitioner ( )

Constructor.

Definition at line 57 of file parallel.cc.

◆ ~TBBPartitioner()

parallel::internal::TBBPartitioner::~TBBPartitioner ( )

Destructor. Check that the object is not in use any more, i.e., all loops have been completed.

Definition at line 64 of file parallel.cc.

Member Function Documentation

◆ acquire_one_partitioner()

std::shared_ptr< tbb::affinity_partitioner > parallel::internal::TBBPartitioner::acquire_one_partitioner ( )

Return an affinity partitioner. In case the partitioner owned by the class is free, it is returned here. In case another thread has not released it yet, a new object is created. To free the partitioner again, return it by the release_one_partitioner() call.

Definition at line 75 of file parallel.cc.

◆ release_one_partitioner()

void parallel::internal::TBBPartitioner::release_one_partitioner ( std::shared_ptr< tbb::affinity_partitioner > &  p)

After using the partitioner in a tbb loop through acquire_one_partitioner(), this call makes the partitioner available again.

Definition at line 88 of file parallel.cc.

Member Data Documentation

◆ my_partitioner

std::shared_ptr<tbb::affinity_partitioner> parallel::internal::TBBPartitioner::my_partitioner
private

The stored partitioner that can accumulate knowledge over several runs of tbb::parallel_for

Definition at line 766 of file parallel.h.

◆ in_use

bool parallel::internal::TBBPartitioner::in_use
private

A flag to indicate whether the partitioner has been acquired but not released yet, i.e., it is in use somewhere else.

Definition at line 772 of file parallel.h.

◆ mutex

std::mutex parallel::internal::TBBPartitioner::mutex
private

A mutex to guard the access to the in_use flag.

Definition at line 777 of file parallel.h.


The documentation for this class was generated from the following files: