发布于 2017-05-16 12:22:05
确实如此。我们对标准化委员会正在考虑的内容进行了一些扩展。HPX引入了ExecutorParameters的概念,它允许控制迭代并行化的粒度。例如:
std::vector<int> v = { ... };
hpx::parallel::static_chunk_size scs;
hpx::parallel::for_each(
hpx::parallel::execution::par.with(scs),
v.begin(), v.end(),
[](int val) { ... }
);这将将迭代分解为(num_iterations / 4 * cores)循环迭代的任务。还可以指定任务的大小:
hpx::parallel::static_chunk_size scs(100);它将在每个任务中合并100个迭代。
其他现有的执行器参数有dynamic_chunk_size (类似于openmp的schedule(dynamic))和guided_chunk_size (类似于openmp的schedule(guided))等。
https://stackoverflow.com/questions/43992551
复制相似问题