vSMC
vSMC: Scalable Monte Carlo
Classes | Functions
Thread

C++11 threading support. More...

Classes

class  vsmc::BlockedRange< T >
 Blocked range. More...
 
class  vsmc::ThreadGuard< ThreadType >
 Strictly scope-based thread ownership wrapper. More...
 
class  vsmc::ThreadNum
 Number of threads used by algorithms. More...
 

Functions

template<typename Range , typename T , typename WorkType >
vsmc::parallel_accumulate (const Range &range, WorkType &&work, T init)
 Parallel accumulate using C++11 concurrency. More...
 
template<typename Range , typename T , typename Bin , typename WorkType >
vsmc::parallel_accumulate (const Range &range, WorkType &&work, T init, Bin bin_op)
 Parallel accumulate using std::thread. More...
 
template<typename Range , typename WorkType >
void vsmc::parallel_for (const Range &range, WorkType &&work)
 Parallel for using std::thread. More...
 
template<typename Range , typename WorkType >
void vsmc::parallel_reduce (const Range &range, WorkType &work)
 Parallel reduce using C++11 concurrency. More...
 
template<typename WorkType >
void vsmc::parallel_repeat (std::size_t n, WorkType &&work)
 Parallel repeat using std::thread. More...
 

Detailed Description

C++11 threading support.

Function Documentation

template<typename Range , typename T , typename WorkType >
T vsmc::parallel_accumulate ( const Range &  range,
WorkType &&  work,
init 
)
inline

Parallel accumulate using C++11 concurrency.

Requirement: WorkType

WorkType work;
work(range, res); // res: T reference type

Definition at line 53 of file parallel_accumulate.hpp.

template<typename Range , typename T , typename Bin , typename WorkType >
T vsmc::parallel_accumulate ( const Range &  range,
WorkType &&  work,
init,
Bin  bin_op 
)
inline

Parallel accumulate using std::thread.

Requirement: WorkType

WorkType work;
work(range, res); // res: T reference type

Definition at line 85 of file parallel_accumulate.hpp.

template<typename Range , typename WorkType >
void vsmc::parallel_for ( const Range &  range,
WorkType &&  work 
)
inline

Parallel for using std::thread.

Requirement: WorkType:

WorkType work;
work(range);

Definition at line 53 of file parallel_for.hpp.

template<typename Range , typename WorkType >
void vsmc::parallel_reduce ( const Range &  range,
WorkType &  work 
)
inline

Parallel reduce using C++11 concurrency.

Requirement: WorkType

WorkType work;
work(range);
Work.join(other_work);

Definition at line 54 of file parallel_reduce.hpp.

template<typename WorkType >
void vsmc::parallel_repeat ( std::size_t  n,
WorkType &&  work 
)
inline

Parallel repeat using std::thread.

Requirement: WorkType:

WorkType work;
work(std::size_t);

Definition at line 51 of file parallel_repeat.hpp.