インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

GAP メッセージ (診断 ID 30525)

メッセージ

"%s loop count min(%d)" 文をループの直前 (行 %d) に挿入して、このループを並列化します。

アドバイス

"#pragma loop count" を指定されたループの前に追加します。このプラグマは、ループの並列化を有効にするためのループの最小反復回数を指定します。

この最小反復回数はターゲット・アーキテクチャーによって異なり、生成されるメッセージに表示されます。

次の例について考えてみます。

#define N 10000 
float A[N], B[N];
 
void foo(int n) {
  int i;
  for (i =0; i < n; i++) {
      A[i] = A[i] + B[i] * B[i] + 1.5;
  } 
}

この例では、n が並列化の効果を得るのに十分な大きさであるかどうか分からないため、コンパイラーはこのループを並列化しません。

安全であることが分かっている場合は、次のようにプラグマを追加できます。

#define N 10000 
float A[N], B[N];
 
void foo(int n) {
  int i; 
#pragma loop count min(128)
  for (i =0; i < n; i++) {
      A[i] = A[i] + B[i] * B[i] + 1.5;
  } 
}

確認

ループの反復回数が診断メッセージで指定された回数以上であることを確認してください。

関連情報