gpt4 book ai didi

c++ - HPX 是否提供具有粒度控制的基于任务的并行迭代功能?

转载 作者:行者123 更新时间:2023-11-28 01:48:18 24 4
gpt4 key购买 nike

HPX 是否提供构建在 task-based fork-join parallelism 之上的任何类型的并行迭代函数?这也让你控制使用的粒度?类似于 TBB 的 parallel_for或 Cilk 的 cilk_for .

最佳答案

确实如此。我们对标准化委员会正在考虑的内容进行了一些扩展。 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)), 等等

关于c++ - HPX 是否提供具有粒度控制的基于任务的并行迭代功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43992551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com