#include <taskflow/algorithm/partitioner.hpp>
template<typename C = DefaultClosureWrapper>
RandomPartitioner class
class to construct a random partitioner for scheduling parallel algorithms
Template parameters | |
---|---|
C | closure wrapper type (default tf:: |
Similar to tf::c = [alpha * N * W, beta * N * W]
. By default, alpha
is 0.01
and beta
is 0.5
, respectively.
In addition to partition size, the application can specify a closure wrapper for a random partitioner. A closure wrapper allows the application to wrapper a partitioned task (i.e., closure) with a custom function object that performs additional tasks. For example:
std::atomic<int> count = 0; tf::Taskflow taskflow; taskflow.for_each_index(0, 100, 1, [](){ printf("%d\n", i); }, tf::RandomPartitioner(0, [](auto&& closure){ // do something before invoking the partitioned task // ... // invoke the partitioned task closure(); // do something else after invoking the partitioned task // ... } ); executor.run(taskflow).wait();
Base classes
-
template<typename C = DefaultClosureWrapper>class PartitionerBase<DefaultClosureWrapper>
- class to derive a partitioner for scheduling parallel algorithms
Public static functions
- static auto type() -> PartitionerType constexpr
- queries the partition type (dynamic)
Constructors, destructors, conversion operators
- RandomPartitioner() defaulted
- default constructor
- RandomPartitioner(size_t sz) explicit
- construct a dynamic partitioner with the given chunk size
- RandomPartitioner(size_t sz, C&& closure) explicit
- construct a random partitioner with the given chunk size and the closure
- RandomPartitioner(float alpha, float beta)
- constructs a random partitioner with the given parameters
- RandomPartitioner(float alpha, float beta, C&& closure)
- constructs a random partitioner with the given parameters and the closure
Public functions
- auto alpha() const -> float
- queries the
alpha
value - auto beta() const -> float
- queries the
beta
value -
auto chunk_size_range(size_t N,
size_t W) const -> std::
pair<size_t, size_t> - queries the range of chunk size
Function documentation
template<typename C>
std:: pair<size_t, size_t> tf:: RandomPartitioner<C>:: chunk_size_range(size_t N,
size_t W) const
queries the range of chunk size
Parameters | |
---|---|
N | number of iterations |
W | number of workers |