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

时间:2011-09-07 17:18:36

标签: c++ parallel-processing openmp

我有一个函数compute(),它使用OpenMP

在其中内部并行化矩阵乘法
#pragma omp parallel for

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

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

1 个答案:

答案 0 :(得分:9)

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

呼叫

omp_set_nested(1);

在程序开始时,它将允许您拥有嵌套的并行区域。

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