ただし、Itanium® ベースのアプリケーションでは、-ivdep_parallel オプションは、IVDEPディレクティブが指定されたループにループ・キャリー・メモリ依存が絶対にないことを示します。この手法は、スパース・マトリックス・アプリケーションに役立ちます。例えば、次のループは ループ・キャリー依存がないことを示す IVDEP ディレクティブの他に -ivdep_parallel を必要とします。
例 |
---|
#pragma ivdep
for(i=1; i<n; i++) { e[ix[2][i]]=e[ix[2][i]]+1.0; e[ix[3][i]]=e[ix[3][i]]+2.0; } |
次の例では、このオプションとIVDEPディレクティブを使用すると、a()への格納でループキャリー依存が確実にないことを示します。
例 |
---|
#pragma ivdep
for(j=0; j<n; j++) { a[b[j]]=a[b[j]]+1; } |