-qsmp

説明

プログラム・コードの並列化を使用可能にする。

構文

構文図を読む構文図をスキップする        .-nosmp-------------------------------------------------------.
>>- -q--+-smp--+----------------------------------------------------+-+-><
               |    .-:-------------------------------------------. |
               |    | .-norec_locks-----------------------------. | |
               |    | +-nonested_par----------------------------+ | |
               |    | +-explicit--------------------------------+ | |
               |    | +-noomp-----------------------------------+ | |
               |    | +-opt-------------------------------------+ | |
               |    V +-auto------------------------------------+ | |
               '-=----+-noauto----------------------------------+-+-'
                      +-noopt-----------------------------------+
                      +-omp-------------------------------------+
                      +-noexplicit------------------------------+
                      +-nested_par------------------------------+
                      +-rec_locks-------------------------------+
                      |              .-runtime----------------. |
                      '-schedule--=--+-+-dynamic--+--+------+-+-'
                                       +-guided---+  '-=--n-'
                                       +-static---+
                                       '-affinity-'
 

ここで、

auto プログラム・コードの自動並列化および最適化を使用可能にします。
noauto プログラム・コードの自動並列化を使用不可にします。 OpenMP プラグマ・ステートメントと明示的に並列化されるプログラム・コードは最適化されます。
opt プログラム・コードの自動並列化および最適化を使用可能にします。
noopt 自動並列化は使用可能にしますが、 並列化されたプログラム・コードの最適化は使用不可にします。 並列化されたプログラム・コードをデバッグするときにはこの設定を使用してください。
omp OpenMP 標準への厳密な準拠を使用可能にします。自動並列化は使用不可になります。 並列化されたプログラム・コードは最適化されます。OpenMP 並列化プラグマだけが認識されます。
noomp プログラム・コードの自動並列化および最適化を使用可能にします。
explicit ループの明示的並列化を制御するプラグマを使用可能にします。
noexplicit ループの明示的並列化を制御するプラグマを使用不可にします。
nested_par これを指定すると、ネストされた並列構成は直列化されません。 nested_par は真のネストされた並列性を提供しません。その理由は、これを使用してもネストされた並列領域に対して新規のスレッドのチームが作成されないためです。代わりに、現在使用可能なスレッドが再利用されます。

このオプションを使用する場合は、注意が必要です。 外部ループ内の使用可能なスレッドの数および作業の量によっては、このオプションが有効な場合でも、 内部ループが順次実行される可能性があります。 並列化オーバーヘッドは、必ずしもプログラムのパフォーマンス向上と相殺されるとは限りません。

nonested_par ネストされた並列構成の並列化を使用不可にします。
rec_locks これを指定すると、再帰的ロックが使用され、 ネストされたクリティカル・セクションがデッドロックの原因となることはありません。
norec_locks これを指定すると、再帰的ロックは使用されません。
schedule=sched_type[=n] 他のスケジューリング・アルゴリズムがソース・コードに明示的に割り当てられていないループに使用されている、スケジューリング・アルゴリズムの種類およびチャンク・サイズ (n) を指定します。 sched_type が指定されていない場合、デフォルト設定として schedule=runtime が想定されます。

関連情報