インテル® マス・カーネル・ライブラリー 11.2 ユーザーズガイド

MKL_DYNAMIC

MKL_DYNAMIC 環境変数は、インテル® MKL がスレッド数を動的に変更できるようにします。

OMP_DYNAMIC のデフォルト値が FALSE の場合でも、MKL_DYNAMIC のデフォルト値は TRUE です。

MKL_DYNAMICTRUE の場合、インテル® MKL は、ユーザーが指定した最大値までの範囲で、最良と見なすスレッド数を使用しようとします。

例えば、MKL_DYNAMICTRUE の場合、以下のようなケースでは最適なスレッド数が選択されます。

MKL_DYNAMICFALSE の場合、インテル® MKL は、ユーザーが指定したスレッド数を使用しようとします。 ただし、MKL_DYNAMIC=FALSE を設定しても、例えば、システムリソースの不足など、要求されたスレッド数を選択できない場合、 インテル® MKL はそのスレッド数を使用しません。また、ライブラリーが問題を調査し、推奨値と異なるスレッド数を使用することがあります。例えば、8 つのスレッドでサイズ 1 の行列-行列乗算を行おうとすると、このイベントで 8 つのスレッドを使用することは実用的でないため、ライブラリーは代わりに 1 スレッドのみ使用します。

インテル® MKL が並列領域で呼び出された場合、デフォルトでは 1 つのスレッドのみを使用することにも注意してください。ライブラリーで入れ子の並列処理を使用し、並列領域内のスレッドをインテル® MKL が使用しているものと同じ OpenMP* コンパイラーでコンパイルする場合、MKL_DYNAMICFALSE にして、スレッド数を手動で設定してください。

一般に、ライブラリーが並列セクションからすでに呼び出されていて入れ子の並列処理を使用する場合など、インテル® MKL が検出できない状況でのみ、MKL_DYNAMICFALSE に設定してください。

最適化に関する注意事項

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

改訂 #20110804


このヘルプトピックについてのフィードバックを送信