| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent f567e4e commit 9ce0d6f
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -520,8 +520,7 @@ auto [S, T] = tf.parallel_for( | |||
| 520 | 520 | v.end(), // end of range | |
| 521 | 521 | [] (int i) { | |
| 522 | 522 | std::cout << "parallel in " << i << '\n'; | |
| 523 | - }, | ||
| 524 | - 1 // execute one task at a time | ||
| 523 | + } | ||
| 525 | 524 | ); | |
| 526 | 525 | // add dependencies via S and T. | |
| 527 | 526 | ``` | |
@@ -545,6 +544,9 @@ auto [S, T] = tf.parallel_for( | |||
| 545 | 544 | ); | |
| 546 | 545 | ``` | |
| 547 | 546 | ||
| 547 | + By default, taskflow performs an even partition over worker threads | ||
| 548 | + if the group size is not specified. | ||
| 549 | + | ||
| 548 | 550 | ### *reduce/transform_reduce* | |
| 549 | 551 | ||
| 550 | 552 | The method `reduce` creates a subgraph that applies a binary operator to a range of items. | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -32,7 +32,7 @@ void taskflow(int N) { | |||
| 32 | 32 | tf::Taskflow tf; | |
| 33 | 33 | tf.parallel_for(range, [&] (const int i) { | |
| 34 | 34 | printf("fib[%d]=%d\n", i, fib(i)); | |
| 35 | - }); | ||
| 35 | + }, 1); | ||
| 36 | 36 | tf.wait_for_all(); | |
| 37 | 37 | ||
| 38 | 38 | auto tend = std::chrono::steady_clock::now(); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -6,7 +6,7 @@ | |||
| 6 | 6 | #include <taskflow/taskflow.hpp> // the only include you need | |
| 7 | 7 | ||
| 8 | 8 | int main(){ | |
| 9 | - | ||
| 9 | + | ||
| 10 | 10 | tf::Taskflow tf(std::thread::hardware_concurrency()); | |
| 11 | 11 | ||
| 12 | 12 | auto [A, B, C, D] = tf.silent_emplace( // the taskflow graph | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -625,10 +625,10 @@ class BasicFlowBuilder { | |||
| 625 | 625 | auto silent_emplace(C&&...); | |
| 626 | 626 | ||
| 627 | 627 | template <typename I, typename C> | |
| 628 | - auto parallel_for(I, I, C&&, size_t = 1); | ||
| 628 | + auto parallel_for(I, I, C&&, size_t = 0); | ||
| 629 | 629 | ||
| 630 | 630 | template <typename T, typename C, std::enable_if_t<is_iterable_v<T>, void>* = nullptr> | |
| 631 | - auto parallel_for(T&, C&&, size_t = 1); | ||
| 631 | + auto parallel_for(T&, C&&, size_t = 0); | ||
| 632 | 632 | ||
| 633 | 633 | template <typename I, typename T, typename B> | |
| 634 | 634 | auto reduce(I, I, T&, B&&); | |
@@ -854,7 +854,7 @@ template <typename I, typename C> | |||
| 854 | 854 | auto BasicFlowBuilder<NodeType>::parallel_for(I beg, I end, C&& c, size_t g) { | |
| 855 | 855 | ||
| 856 | 856 | using category = typename std::iterator_traits<I>::iterator_category; | |
| 857 | - | ||
| 857 | + | ||
| 858 | 858 | if(g == 0) { | |
| 859 | 859 | auto d = std::distance(beg, end); | |
| 860 | 860 | auto w = std::max(size_t{1}, _num_workers); | |
@@ -1208,10 +1208,10 @@ class BasicTaskflow { | |||
| 1208 | 1208 | auto silent_emplace(C&&...); | |
| 1209 | 1209 | ||
| 1210 | 1210 | template <typename I, typename C> | |
| 1211 | - auto parallel_for(I, I, C&&, size_t = 1); | ||
| 1211 | + auto parallel_for(I, I, C&&, size_t = 0); | ||
| 1212 | 1212 | ||
| 1213 | 1213 | template <typename T, typename C, std::enable_if_t<is_iterable_v<T>, void>* = nullptr> | |
| 1214 | - auto parallel_for(T&, C&&, size_t = 1); | ||
| 1214 | + auto parallel_for(T&, C&&, size_t = 0); | ||
| 1215 | 1215 | ||
| 1216 | 1216 | template <typename I, typename T, typename B> | |
| 1217 | 1217 | auto reduce(I, I, T&, B&&); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments