OpenMP - 在并行代码中运行并行代码

Mik*_*ail 10 c++ parallel-processing openmp

我有一个compute()使用OpenMP在其内部并行化矩阵乘法的函数

#pragma omp parallel for
Run Code Online (Sandbox Code Playgroud)

这个函数在循环中被多次调用 - 我想并行运行.在其他并行代码中运行并行代码会有任何问题吗?

这是在Ubuntu上编译的c ++.

Mys*_*ial 9

它可以正常工作,但您需要启用OpenMP嵌套才能工作.

呼叫

omp_set_nested(1);
Run Code Online (Sandbox Code Playgroud)

在程序的开头,它将允许您具有嵌套的并行区域.

但是:请注意,您最终可能会运行比您想要的更多的线程.因此,您需要限制顶部和内部并行区域的线程数.

  • 这很棒.我忘记了嵌套这个词,找不到任何有用的东西. (4认同)