2011-01-17 18 views

答えて

7

それはomp foromp parallel forは同じものではありませんあなたはプラグマ

#pragma omp parallel for firstprivate(j) 

注意を使用する場合は、その作品:後者はomp parallel内部omp forの省略形です。

1

私は何かを見逃してしまったので私の最初の答えを削除し、それは間違っていました。並列領域のマスト内プライベートリスト項目•

:エラーは、OpenMPのV3.0仕様に制限(および以前のバージョン)、セクション2.9.3.4 FIRSTPRIVATE句、制限弾丸2の正しいですワークシェアリングコンストラクトから生じた領域のいずれかが並列コンストラクトから生じる領域 のいずれかに結合した場合、ワークシェアリングコンストラクトの firstprivate句には現れません。

問題は、ワークシェアリング領域を実行するスレッドの中で使用するプライベート値がわからないことです。新しい並列領域である場合、各スレッドは新しい領域を作成し、最初のプライベートは領域を作成するスレッドのプライベートコピーからコピーされます。

+0

私の経験では、GCCはバージョンによってOpenMP 1.0 + 2.0の異なるサブセットをサポートする傾向があります。私はGCCで私の答えをテストしました。 –

関連する問題