2012-09-07 8 views
8

omp並列ブロック外のクリティカル、シングル、マスタ、またはバリアなどのompプラグマを使用することはできますか?私は、OMPの並列ブロックから呼び出すことができる関数を持っています。はいの場合、私はクリティカルセクションにコードの一部を囲む必要があります。つまり、このコードは問題ありませんか?omp並列ブロック外のompプラグマ

これはOpenMPのドキュメントには記載されていません。私はコードが1スレッドの実行とまったく同じように動作するはずだと思います。これがgccで動作する方法です。私はこの動作が移植可能かどうか、あるいは仕様が定義していない何かが期待できるものかどうかを知りたいと思います。 this文書によれば

+0

これはほとんどのプラグマにとっては問題ないと思います。 – osgx

答えて

2

DO /のための1つが存在する場合、セクションでは、SINGLEは、MASTERおよびBARRIER指令は、動的封入PARALLELに結合します。並列領域が現在実行されていない場合、指令は無効です。

したがって、これらのプラグマは並列領域外で使用できます。私はまだ明示的に文書に書かれていない。

関連する問題