インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) スレッドレイヤーは、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) 関数がアプリケーションが実行されるシステムの複数の計算コアをどのように活用するかを定義します。下記で説明しているように、アプリケーションとこのレイヤーの 1 つの適切なインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) をリンクします。リンクするライブラリー (並列またはシーケンシャル) に応じて、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は並列モードまたはシーケンシャル・モードで動作します。
並列モードでは、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) はシステムで利用可能な複数のプロセッサー・コアを利用し、OpenMP* またはインテル® TBB スレッディング・テクノロジーを使用するため、アプリケーションにリンクする適切なスレッド・ランタイム・ライブラリー (RTL) が必要です。インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) の使用に関係なく、アプリケーションでスレッド RTL が必要になることがあります。アプリケーションに複数のスレッド RTL をリンクしないでください。スレッド RTL は、コンパイラーにより提供されます。インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は、特定のコンパイラーのスレッド RTL に依存するいくつかのスレッド・ライブラリーを提供します。スレッド・ライブラリーの選択は、アプリケーションで使用するスレッド RTL に依存します。
インテル® コンパイラーの OpenMP* RTL は、<親ディレクトリー>\compiler\lib の下にある libiomp5md.lib ライブラリーです。インテル® コンパイラーの OpenMP* RTL に関する詳細は、https://www.openmprtl.org (英語) を参照してください。
インテル® コンパイラーのインテル® TBB RTL は、<親ディレクトリー>\tbb\lib の下にある tbb12.lib ライブラリーです。インテル® コンパイラーのインテル® TBB RTL に関する詳細は、https://www.threadingbuildingblocks.org (英語) を参照してください。
シーケンシャル・モードでは、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) はスレッド化されていないコードを実行するため、スレッド RTL は必要ありません。また、スレッドの数を制御する環境変数と関数は無視されます。次のような特別な理由がない限り、ライブラリーをシーケンシャル・モードで使用しないでください。
アプリケーションを適切な RTL にリンクすることが重要です。以下の表は、選択するインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) スレッドレイヤーのライブラリーとスレッド RTL の説明です。
アプリケーション |
インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) |
RTL が必要 |
||
|---|---|---|---|---|
| OpenMP* を使用 | コンパイル | 実行モデル |
スレッドレイヤー |
|
いいえ |
任意のコンパイラー |
並列 |
静的リンク: mkl_intel_thread.lib 動的リンク: mkl_intel_thread_dll.lib |
libiomp5md.lib |
いいえ |
任意のコンパイラー |
並列 |
静的リンク: mkl_tbb_thread.lib 動的リンク: mkl_tbb_thread_dll.lib |
tbb12.lib |
いいえ |
任意のコンパイラー |
シーケンシャル |
静的リンク: mkl_sequential.lib 動的リンク: mkl_sequential_dll.lib |
なし |
はい |
インテル® コンパイラー |
並列 |
静的リンク: mkl_intel_thread.lib 動的リンク: mkl_intel_thread_dll.lib |
libiomp5md.lib |
はい |
その他のコンパイラー |
並列 |
サポートされません。異なるプログラミング環境でのインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) を使用 |
|
製品および性能に関する情報 |
|---|
性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。 改訂 #20201201 |