小编che*_*ang的帖子

如何使用 OpenMP 为每个函数分配不同数量的线程

我有两个函数,第二个函数中有一个 for 循环。

fun1() {
    ...
}
fun2() {
    for(...) {
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想并行运行fun1fun2即每个函数使用单个线程)。在里面fun2我希望我可以用来omp parallel for执行 for 循环。

我尝试像这样实现它。

fun1() {
}

fun2() {
    #pragma omp for
    for() {
    }
}

int main() {
    #pragma omp parallel
    {
        #pragma omp single
        {
            fun1();
        }
        fun2();
    {
}
Run Code Online (Sandbox Code Playgroud)

但它会调用fun2多次。

那么有办法做到这一点吗?

parallel-processing multithreading for-loop openmp sections

3
推荐指数
1
解决办法
887
查看次数