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 >
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 >
parallel_accumulate (const WorkItems &items, T init_value, ProcessFunc &&process, CombineFunc &&combine)
 
template<typename T , typename ProcessFunc , typename CombineFunc >
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 = typedef 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,
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,
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,
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