2011-09-07 9 views
10
compute()私はOpenMP
#pragma omp parallel for 

を使用して、その内部で行列乗算を並列化した関数compute()を持っています。この関数はループで何度も呼び出されます。 他の並列コード内で並列コードを実行する際に問題はありますか?OpenMP - パラレルコード内でパラレルコードを実行する

これはUbuntuでコンパイルされたC++です。

答えて

9

正常に動作しますが、動作させるにはOpenMPネストを有効にする必要があります。

コール

omp_set_nested(1); 

プログラムの開始時に、それはあなたが並列領域を入れ子にしていることができます。

ただし、あなたが望むものよりも多くのスレッドを実行する可能性があることに注意してください。したがって、上部と内部の両方の平行領域のスレッド数を制限する必要があります。

+4

これは優れています。私は入れ子になった単語を忘れてしまって、何か役に立つものが見つからなかった。 – Mikhail

関連する問題