Reference documentation for deal.II version Git 409ee4b167 2020-08-14 09:46:12 -0400

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

## Static Public Member Functions

static unsigned int n_cores ()

static std::size_t memory_consumption ()

## Static Private Attributes

static unsigned int n_max_threads = numbers::invalid_unsigned_int

static std::unique_ptr< tf::Executor > executor = nullptr

## Detailed Description

Definition at line 55 of file multithread_info.h.

## Constructor & Destructor Documentation

delete

Constructor. This constructor is deleted because no instance of this class needs to be constructed (all members are static).

## ◆ n_cores()

static

The number of CPUs in the system.

This internally calls std::thread::hardware_concurrency but sets the result to 1 if the call returns an error.

Definition at line 38 of file multithread_info.cc.

static

Return the number of threads to use. This is initially set to the number of cores the system has (see n_cores()) but can be further restricted by set_thread_limit() and the environment variable DEAL_II_NUM_THREADS.

Definition at line 110 of file multithread_info.cc.

## ◆ memory_consumption()

static

Return an estimate for the memory consumption, in bytes, of this object. This is not exact (but will usually be close) because calculating the memory usage of trees (e.g., std::map) is difficult.

Definition at line 127 of file multithread_info.cc.

 void MultithreadInfo::set_thread_limit ( const unsigned int max_threads = numbers::invalid_unsigned_int )
static

Set the maximum number of threads to be used to the minimum of the environment variable DEAL_II_NUM_THREADS and the given argument (or its default value). This affects the initialization of the TBB. If neither is given, the default from TBB is used (based on the number of cores in the system).

This routine is executed automatically with the default argument before your code in main() is running (using a static constructor). It is also executed by Utilities::MPI::MPI_InitFinalize. Use the appropriate argument of the constructor of Utilities::MPI::MPI_InitFinalize if you have an MPI based code.

Definition at line 50 of file multithread_info.cc.

static

Return if the TBB is running using a single thread either because of thread affinity or because it is set via a call to set_thread_limit. This is used in the PETScWrappers to avoid using the interface that is not thread-safe.

Definition at line 119 of file multithread_info.cc.

static

Make sure the multithreading API is initialized. This normally does not need to be called in usercode.

Definition at line 136 of file multithread_info.cc.

static

Return a reference to the global Executor from taskflow.

Definition at line 148 of file multithread_info.cc.

## Member Data Documentation

staticprivate

Variable representing the maximum number of threads.

Definition at line 140 of file multithread_info.h.

## ◆ executor

 std::unique_ptr< tf::Executor > MultithreadInfo::executor = nullptr
staticprivate

Store a taskflow Executor that is constructed with N workers (from set_thread_limit).

Definition at line 147 of file multithread_info.h.

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