我有一个函数compute()
,它使用OpenMP
#pragma omp parallel for
这个函数在循环中被多次调用 - 我想并行运行。 在其他并行代码中运行并行代码会有任何问题吗?
这是在Ubuntu上编译的c ++。
答案 0 :(得分:9)
它可以正常工作,但您需要启用OpenMP嵌套才能工作。
呼叫
omp_set_nested(1);
在程序开始时,它将允许您拥有嵌套的并行区域。
但是:请注意,您最终可能会运行比您想要的更多的线程。因此,您需要限制顶部和内部并行区域的线程数。