2011-09-07 75 views
10

內並行代碼中,我有使用OpenMPOpenMP的 - 運行並行代碼

#pragma omp parallel for 

這個函數的函數compute()已經並行它的內部矩陣乘法被稱爲在多次循環 - 我想運行平行。 在其他並行代碼中運行並行代碼會有什麼問題嗎?

這是在Ubuntu上編譯的C++。

回答

9

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

呼叫

omp_set_nested(1); 

在節目的開始,它可以讓你嵌套並行區域。

但是:請注意,您最終可能會運行比您想要的更多的線程。所以你會想限制頂部和內部平行區域的線程數量。

+4

這很棒。我忘了嵌套這個詞,並且找不到任何有用的東西。 – Mikhail