2011-09-07 52 views
10

内并行代码中,我有使用OpenMPOpenMP的 - 运行并行代码

#pragma omp parallel for 

这个函数的函数compute()已经并行它的内部矩阵乘法被称为在多次循环 - 我想运行平行。 在其他并行代码中运行并行代码会有什么问题吗?

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

回答

9

它会正常工作,但您需要启用OpenMP嵌套以使其工作。

呼叫

omp_set_nested(1); 

在节目的开始,它可以让你嵌套并行区域。

但是:请注意,您最终可能会运行比您想要的更多的线程。所以你会想限制顶部和内部平行区域的线程数量。

+4

这很棒。我忘了嵌套这个词,并且找不到任何有用的东西。 – Mikhail