occ
Loading...
Searching...
No Matches
occ::parallel Namespace Reference

main module for functionaliity parallelism - threads etc. More...

Typedefs

template<typename T>
using thread_local_storage = tbb::enumerable_thread_specific<T>

Functions

std::unique_ptr< tbb::global_control > & get_tbb_control ()
void shutdown_tbb ()
void set_num_threads (int threads)
int get_num_threads ()
template<typename Lambda>
void parallel_for (size_t begin, size_t end, Lambda &&lambda, size_t grainsize=0)
template<typename T, typename Lambda, typename Reduction>
T parallel_reduce (size_t begin, size_t end, T init, Lambda &&lambda, Reduction &&reduction, size_t grainsize=0)
template<typename Lambda>
void parallel_for_2d (size_t rows_begin, size_t rows_end, size_t cols_begin, size_t cols_end, Lambda &&lambda, size_t row_grainsize=0, size_t col_grainsize=0)
template<typename Lambda>
void parallel_invoke (Lambda &&lambda1, Lambda &&lambda2)
template<typename... Lambdas>
void parallel_invoke (Lambdas &&...lambdas)
template<typename T, typename WorkItems, typename ProcessFunc, typename CombineFunc>
T parallel_accumulate (const WorkItems &items, T init_value, ProcessFunc &&process, CombineFunc &&combine)
template<typename T, typename ProcessFunc, typename CombineFunc>
T parallel_accumulate_indexed (size_t num_items, T init_value, ProcessFunc &&process, CombineFunc &&combine)

Variables

int nthreads = 1

Detailed Description

main module for functionaliity parallelism - threads etc.

Typedef Documentation

◆ thread_local_storage

template<typename T>
using occ::parallel::thread_local_storage = tbb::enumerable_thread_specific<T>

Function Documentation

◆ get_num_threads()

int occ::parallel::get_num_threads ( )
inline

◆ get_tbb_control()

std::unique_ptr< tbb::global_control > & occ::parallel::get_tbb_control ( )
inline

◆ parallel_accumulate()

template<typename T, typename WorkItems, typename ProcessFunc, typename CombineFunc>
T occ::parallel::parallel_accumulate ( const WorkItems & items,
T init_value,
ProcessFunc && process,
CombineFunc && combine )

◆ parallel_accumulate_indexed()

template<typename T, typename ProcessFunc, typename CombineFunc>
T occ::parallel::parallel_accumulate_indexed ( size_t num_items,
T init_value,
ProcessFunc && process,
CombineFunc && combine )

◆ parallel_for()

template<typename Lambda>
void occ::parallel::parallel_for ( size_t begin,
size_t end,
Lambda && lambda,
size_t grainsize = 0 )

◆ parallel_for_2d()

template<typename Lambda>
void occ::parallel::parallel_for_2d ( size_t rows_begin,
size_t rows_end,
size_t cols_begin,
size_t cols_end,
Lambda && lambda,
size_t row_grainsize = 0,
size_t col_grainsize = 0 )

◆ parallel_invoke() [1/2]

template<typename Lambda>
void occ::parallel::parallel_invoke ( Lambda && lambda1,
Lambda && lambda2 )

◆ parallel_invoke() [2/2]

template<typename... Lambdas>
void occ::parallel::parallel_invoke ( Lambdas &&... lambdas)

◆ parallel_reduce()

template<typename T, typename Lambda, typename Reduction>
T occ::parallel::parallel_reduce ( size_t begin,
size_t end,
T init,
Lambda && lambda,
Reduction && reduction,
size_t grainsize = 0 )

◆ set_num_threads()

void occ::parallel::set_num_threads ( int threads)
inline

◆ shutdown_tbb()

void occ::parallel::shutdown_tbb ( )
inline

Variable Documentation

◆ nthreads

int occ::parallel::nthreads = 1
inline