DO ループのスケジューリング・アルゴリズムを指定します。
なし
IA-32 アーキテクチャー、インテル(R) 64 アーキテクチャー、IA-64 アーキテクチャー
Linux* および Mac OS*: | -par-schedule-keyword[=n] |
Windows*: | /Qpar-schedule-keyword[[:]n] |
keyword | スケジューリング・アルゴリズムを指定します。設定可能な値は以下のとおりです。 | |
static | 反復を連続するチャンクに分割します。 | |
dynamic | 反復のセットを動的に取得します。 | |
guided | 最小の反復回数を指定します。 | |
runtime | スケジューリングに関する決定を実行時まで延期します。 | |
n | チャンクサイズまたはチャンクごとの反復回数です。詳細は、下記のキーワードの説明を参照してください。 |
オフ | パフォーマンス・チューニングにデフォルトのアルゴリズムを使用します。 |
このオプションは、DO ループのスケジューリング・アルゴリズムを指定します。反復をチームのスレッド間でどのように分割するかを指定します。
このオプションは、パフォーマンス・チューニングに影響を与え、自動並列化で最良のパフォーマンスを得ることができます。
オプション | 説明 |
---|---|
-par-schedule-static または /Qpar-schedule-static | 反復をサイズ n の連続するチャンクに分割します。分割された反復は、ラウンドロビン方式
(総当り) でスレッド番号の順番にチームのスレッドへ静的に振り分けられます。最後に割り当てられるチャンクの反復回数は、ほかと比べて少ない場合があります。 n が指定されていない場合、反復はほぼ同じサイズのチャンクに分割され、各スレッドには最大で 1 つのチャンクが割り当てられます。 |
-par-schedule-dynamic または /Qpar-schedule-dynamic | 反復のセットを動的に取得するのに使用します。スレッドからの要求に対して、チャンクに分割された反復を割り当てます。スレッドはチャンクを実行して、実行が終わったら、次のチャンクを要求します。割り当てるチャンクがなくなるまで、これを繰り返します。
各スレッドがチャンクを実行し終わると、次の反復のセットが動的に取得されます。それぞれのチャンクには n 回の反復が含まれています。ただし、最後に割り当てられるチャンクの反復回数はこれよりも少ない場合があります。n が指定されていない場合、デフォルトは 1 です。 |
-par-schedule-guided または /Qpar-schedule-guided | 最小の反復回数を指定するのに使用します。スレッドからの要求に対して、チャンクに分割された反復を割り当てます。スレッドはチャンクを実行して、実行が終わったら、次のチャンクを要求します。割り当てるチャンクがなくなるまで、これを繰り返します。
n が 1 の場合、各チャンクのサイズは割り当てられていない反復回数をスレッド数で割って、1 に切り下げた値になります。n が k (2 以上) の場合、各チャンクのサイズは、k に切り下げられる点を除いて同じ方法で決定されます (ただし、最後に割り当てられるチャンクの反復回数は k よりも少ない場合があります)。n が指定されていない場合、デフォルトは 1 です。 |
-par-schedule-runtime または /Qpar-schedule-runtime | スケジューリングに関する決定を実行時まで延期します。OMP_SCHEDULE 環境変数の設定から、スケジューリング・アルゴリズムとチャンクサイズを取得します。この keyword では n を指定することはできません。 |
なし