loop
ループのコードが自動parallelizerに対してどのよう考慮する必要がある場合、コントロールには自動vectorizerしてから考慮事項やループを除外します。
#pragma loop( hint_parallel(n) )
#pragma loop( no_vector )
#pragma loop( ivdep )
パラメーター
hint_parallel(n)
このループが n で並列化されることは n コンパイラへのヒントが正の整数リテラルまたはがゼロである場合に、スレッド。n がゼロの場合、スレッドの最大数は実行時に使用されます。これは、コンパイラに対するヒント、コマンドであり、ループを並列化するという保証はありません。問題例のループにデータの依存関係が、または構造体がある場合は、ループの本体を越えてループ使用されるスカラーへのループを並列化ストアがあります。コンパイラは /Qpar コンパイラのスイッチが指定されていない場合は、このオプションを無視します。
no_vector
既定では、自動vectorizerは有効で、評価するすべてのループをvectorizeすると、そのの利点を活用できるようにします。後続のループの自動vectorizerを無効にするには、このプラグマを指定します。ivdep
こののベクターの依存関係を無視するコンパイラへのヒントはループします。hint_parallelとともに使います。
解説
loop のプラグマを使用するには、内側のループの定義の前のないそれを入力します。プラグマは、後続のループのスコープの実装されます。ループに複数のプラグマは、任意の順序で適用できますが、別のプラグマのステートメントのすべてを示す必要があります。