インテル® マス・カーネル・ライブラリー 11.2 ユーザーズガイド
インテル® MKL は、シーケンシャル実行および並列実行をサポートしています。並列実行用に、インテル® MKL のスレッドレイヤーは次のライブラリーを提供します。
mkl_intel_thread.lib および mkl_pgi_thread.lib ライブラリー (スタティック・リンク)
mkl_intel_thread_dll.lib および mkl_pgi_thread_dll.lib ライブラリー (ダイナミック・リンク)
並列モードは OpenMP* スレッド化テクノロジーをベースにしているため、適切な OpenMP* ランタイム・ライブラリーが必要です。インテル® コンパイラーは libiomp5md.lib ライブラリーで OpenMP* のランタイム機能を提供しています。 アプリケーションをビルドしたコンパイラー (インテル® コンパイラー、Microsoft* コンパイラー、または PGI* コンパイラー) に関係なく、このライブラリーを実行時に使用できます。 インテル® MKL を呼び出すアプリケーションは、PGI* コンパイラーで提供される OpenMP* ランタイム・ライブラリーを使用することもできます。 このライブラリーを使用するには、アプリケーションと libmkl_pgi_thread.lib または libmkl_pgi_thread_dll.lib ライブラリーをリンクします。
以下の表は、選択するインテル® MKL ライブラリーと OpenMP* ランタイム・ライブラリーの説明です (スタティックの場合のみ)。
スレッドレイヤーで mkl_sequential.lib ライブラリーを選択すると、インテル® MKL 呼び出しからスレッド化が削除されます。
コンパイラー |
マルチスレッド? |
スレッドレイヤー |
RTL を推奨 |
内容 |
---|---|---|---|---|
インテル |
問題になりません |
mkl_intel_thread.lib |
libiomp5md.lib |
|
PGI* |
○ |
mkl_pgi_thread.lib または mkl_sequential.lib |
PGI* が提供 |
|
PGI* |
X |
mkl_intel_thread.lib |
libiomp5md.lib |
|
PGI* |
X |
mkl_pgi_thread.lib |
PGI* が提供 |
|
PGI* |
X |
mkl_sequential.lib |
なし |
|
Microsoft* |
○ |
mkl_intel_thread.lib |
libiomp5md.lib |
Microsoft* Visual Studio* IDE の OpenMP* ライブラリーの場合。 |
Microsoft* |
○ |
mkl_sequential.lib |
なし |
Win32 スレッド。 |
Microsoft* |
X |
mkl_intel_thread.lib |
libiomp5md.lib |
インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当する製品のユーザー・リファレンス・ガイドを参照してください。 改訂 #20110804 |