インテル® MKL 11.3 ユーザーズガイド

OpenMP* によりスレッド化される関数と問題

以下のインテル® MKL 関数ドメインは OpenMP* テクノロジーによりスレッド化されます。

LAPACK ルーチン

? は各ルーチンの精度接頭辞を表します。値は、s、d、c、または z になります。

以下の LAPACK ルーチンは OpenMP* によりスレッド化されます。

スレッド化される LAPACK ルーチンまたは BLAS ルーチンに基づいて OpenMP* 並列処理を効果的利用する LAPACK ルーチン:
?gesv、?posv、?gels、?gesvd、?syev、?heev、cgegs/zgegs、cgegv/zgegv、cgges/zgges、cggesx/zggesx、cggev/zggev、cggevx/zggevx など。

スレッド化されるレベル 1 BLAS ルーチンとレベル 2 BLAS ルーチン

以下のリストで、? は各ルーチンの精度接頭辞を表します。値は、s、d、c、または z になります。

以下のルーチンは、インテル® Core™2 Duo プロセッサーおよびインテル® Core™ i7 プロセッサー用に OpenMP* によりスレッド化されます。

スレッド化される FFT 問題

問題の以下の特性を基に、FFT 計算が OpenMP* によりスレッド化されるかどうかが決まります。

ほとんどの FFT 問題はスレッド化されます。特に、1 つの呼び出しにおける複数の変換の計算 (変換数 > 1) はスレッド化されます。以下に、スレッド化される変換の詳細を示します。

1 次元 (1D) 変換

1D 変換は多くの場合スレッド化されます。

インターリーブ複素数データレイアウトを使用するサイズ N の 1D 複素数-複素数 (c2c) 変換は、以下の条件下でスレッド化されます (アーキテクチャーに依存します)。

アーキテクチャー

条件

インテル® 64

N が 2 の累乗、log2(N) > 9、変換が倍精度アウトオブプレース、入力/出力ストライドが 1。

IA-32

N が 2 の累乗、log2(N) > 13、変換が単精度。

N が 2 の累乗、log2(N) > 14、変換が倍精度。

任意

N がコンポジット (複合)、log2(N) > 16、入力/出力ストライドが 1。

スプリット複素数レイアウトを使用する 1D 複素数-複素数変換はスレッド化されません。

多次元変換

大量のデータの多次元変換はすべてスレッド化されます。

最適化に関する注意事項

インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。

改訂 #20110804