プリフェッチのサポート

PREFETCH と NOPREFETCH ディレクティブは、データ・プリフェッチがメモリ参照に生成されるか、されないかを指定します。これは、コンパイラが使用するヒューリスティックに影響を与えます。

ループの前に PREFETCH a を置いて、ループ内で式 a(j) を使用する場合、コンパイラはループ内の a(j+d) のプリフェッチを挿入します。d はコンパイラによって決定されます。このディレクティブは -O3 オプションがオンの場合にサポートされます。

CDEC$ NOPREFETCH c
CDEC$ PREFETCH a
do i = 1, m
b(i) = a(c(i)) + 1
enddo

これらのディレクティブの詳細は、『Intel® Fortran Language Reference』 (英語) の「General Directives」にある「Directive Enhanced Compilation」を参照してください。