gpt4 book ai didi

c++ - OpenMP 指定 for 循环迭代的线程数

转载 作者:太空宇宙 更新时间:2023-11-03 10:27:08 25 4
gpt4 key购买 nike

我正在使用以下命令在程序的可用线程上并行化单个循环:

#pragma omp parallel for num_threads(threads)
for(long i = 0; i < threads; i++)
{
array[i] = calculateStuff(i,...);
}

出于技术原因,我想保证0号线程执行i=0,1号线程执行i=1。换句话说,我总是想要 i=omp_get_thread_num()。这可能吗?

最佳答案

在这种特定情况下,使用循环是一种资源浪费。只需使用 omp_get_thread_num():

#include <omp.h>

#pragma omp parallel num_threads(threads)
{
int i = omp_get_thread_num();
array[i] = calculateStuff(i,...);
}

关于c++ - OpenMP 指定 for 循环迭代的线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29939782/

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