tf::RandomPartitioner tf::PartitionerBase< DefaultClosureWrapper > taskflow/algorithm/partitioner.hpp typename C DefaultClosureWrapper float float tf::RandomPartitioner< C >::_alpha _alpha {0.01f} float float tf::RandomPartitioner< C >::_beta _beta {0.5f} constexpr PartitionerType static constexpr PartitionerType tf::RandomPartitioner< C >::type () type queries the partition type (dynamic) tf::RandomPartitioner< C >::RandomPartitioner ()=default RandomPartitioner default constructor tf::RandomPartitioner< C >::RandomPartitioner (size_t sz) RandomPartitioner size_t sz construct a dynamic partitioner with the given chunk size tf::RandomPartitioner< C >::RandomPartitioner (size_t sz, C &&closure) RandomPartitioner size_t sz C && closure construct a random partitioner with the given chunk size and the closure tf::RandomPartitioner< C >::RandomPartitioner (float alpha, float beta) RandomPartitioner float alpha float beta constructs a random partitioner with the given parameters tf::RandomPartitioner< C >::RandomPartitioner (float alpha, float beta, C &&closure) RandomPartitioner float alpha float beta C && closure constructs a random partitioner with the given parameters and the closure float float tf::RandomPartitioner< C >::alpha () const alpha queries the alpha value float float tf::RandomPartitioner< C >::beta () const beta queries the beta value std::pair< size_t, size_t > std::pair<size_t, size_t> tf::RandomPartitioner< C >::chunk_size_range (size_t N, size_t W) const chunk_size_range size_t N size_t W queries the range of chunk size N number of iterations W number of workers typename F std::enable_if_t< std::is_invocable_r_v< void, F, size_t, size_t >, void > * nullptr void void tf::RandomPartitioner< C >::loop (size_t N, size_t W, std::atomic< size_t > &next, F &&func) const loop size_t N size_t W std::atomic< size_t > & next F && func typename F std::enable_if_t< std::is_invocable_r_v< bool, F, size_t, size_t >, void > * nullptr void void tf::RandomPartitioner< C >::loop_until (size_t N, size_t W, std::atomic< size_t > &next, F &&func) const loop_until size_t N size_t W std::atomic< size_t > & next F && func class to construct a random partitioner for scheduling parallel algorithms C closure wrapper type (default tf::DefaultClosureWrapper) Similar to tf::DynamicPartitioner, the partitioner splits iterations into many partitions but each with a random chunk size in the range, 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::Taskflowtaskflow; taskflow.for_each_index(0,100,1, [](){ printf("%d\n",i); }, tf::RandomPartitioner(0,[](auto&&closure){ //dosomethingbeforeinvokingthepartitionedtask //... //invokethepartitionedtask closure(); //dosomethingelseafterinvokingthepartitionedtask //... } ); executor.run(taskflow).wait(); tf::RandomPartitioner_alpha tf::RandomPartitioner_beta tf::RandomPartitioner_chunk_size tf::RandomPartitioner_closure_wrapper tf::RandomPartitioneralpha tf::RandomPartitionerbeta tf::RandomPartitionerchunk_size tf::RandomPartitionerchunk_size tf::RandomPartitionerchunk_size_range tf::RandomPartitionerclosure_wrapper tf::RandomPartitionerclosure_wrapper tf::RandomPartitionerclosure_wrapper_type tf::RandomPartitionerloop tf::RandomPartitionerloop_until tf::RandomPartitionerPartitionerBase tf::RandomPartitionerPartitionerBase tf::RandomPartitionerPartitionerBase tf::RandomPartitionerRandomPartitioner tf::RandomPartitionerRandomPartitioner tf::RandomPartitionerRandomPartitioner tf::RandomPartitionerRandomPartitioner tf::RandomPartitionerRandomPartitioner tf::RandomPartitionertype