gpt4 book ai didi

c++ - OpenMP 并行发送哪个元素?

转载 作者:行者123 更新时间:2023-11-30 04:58:20 24 4
gpt4 key购买 nike

我是 OpenMP 的新程序员。我想并行处理我的数据,我使用 OpenMP。当我将它与 OpenMP parallel for 一起使用时,如何获取在 for 循环中处理的元素?例如:

#pragma omp parallel for
for(int i = 0; i < 10; i++){
myFunc(i);
}

我不想同时发送 1、3、6 或 2 4 7。我可以管理一起发送的号码吗?

最佳答案

您应该阅读有关 block 大小的信息,因为它可能对您有帮助 Scheduling examples

例如,如果您擅长取 1,2 和 3,4 以及 5,6 等等,您可以通过以下代码简单地做到这一点:

#pragma omp parallel for schedule(static, 2) 
for(int i = 0; i < 10; i++){
myFunc(i);
}

这个 schedule(static, 2) 意味着每个线程将采用 2 个连续数字,如下所示:

  • 线程 1:1,2
  • 线程 2:3,4
  • 线程 3:5,6

以此类推,直到没有更多数据。如果您想要不同的日程安排,请查看帖子开头的链接。但请注意,其中一些可能会带来一些额外的开销。

关于c++ - OpenMP 并行发送哪个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701647/

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