occ
Loading...
Searching...
No Matches
parallel.h File Reference
#include <algorithm>
#include <memory>
#include <occ/core/timings.h>
#include <thread>
#include <type_traits>
#include <vector>
#include <tbb/blocked_range.h>
#include <tbb/blocked_range2d.h>
#include <tbb/enumerable_thread_specific.h>
#include <tbb/global_control.h>
#include <tbb/parallel_for.h>
#include <tbb/parallel_invoke.h>
#include <tbb/parallel_reduce.h>
Include dependency graph for parallel.h:
This graph shows which files directly or indirectly include this file:

Namespaces

namespace  occ
 
namespace  occ::parallel
 main module for functionaliity parallelism - threads etc.
 

Typedefs

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

Functions

std::unique_ptr< tbb::global_control > & occ::parallel::get_tbb_control ()
 
void occ::parallel::shutdown_tbb ()
 
void occ::parallel::set_num_threads (int threads)
 
int occ::parallel::get_num_threads ()
 
template<typename Lambda >
void occ::parallel::parallel_for (size_t begin, size_t end, Lambda &&lambda, size_t grainsize=0)
 
template<typename T , typename Lambda , typename Reduction >
occ::parallel::parallel_reduce (size_t begin, size_t end, T init, Lambda &&lambda, Reduction &&reduction, size_t grainsize=0)
 
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)
 
template<typename Lambda >
void occ::parallel::parallel_invoke (Lambda &&lambda1, Lambda &&lambda2)
 
template<typename... Lambdas>
void occ::parallel::parallel_invoke (Lambdas &&...lambdas)
 
template<typename T , typename WorkItems , typename ProcessFunc , typename CombineFunc >
occ::parallel::parallel_accumulate (const WorkItems &items, T init_value, ProcessFunc &&process, CombineFunc &&combine)
 
template<typename T , typename ProcessFunc , typename CombineFunc >
occ::parallel::parallel_accumulate_indexed (size_t num_items, T init_value, ProcessFunc &&process, CombineFunc &&combine)
 

Variables

int occ::parallel::nthreads = 1