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

スレッドレイヤーの選択

インテル® MKL は、シーケンシャル実行および並列実行をサポートしています。並列実行用に、インテル® MKL のスレッドレイヤーは次のライブラリーを提供します。

並列モードは OpenMP* スレッド化テクノロジーをベースにしているため、適切な OpenMP* ランタイム・ライブラリーが必要です。インテル® コンパイラーは libiomp5.so ライブラリーで OpenMP* のランタイム機能を提供しています。 アプリケーションをビルドしたコンパイラー (インテル® コンパイラー、GNU* コンパイラー、または PGI* コンパイラー) に関係なく、このライブラリーを実行時に使用できます。 インテル® MKL を呼び出すアプリケーションは、GNU* または PGI* コンパイラーで提供される OpenMP* ランタイム・ライブラリーを使用することもできます。 このライブラリーを使用するには、アプリケーションと libmkl_gnu_thread.* または libmkl_pgi_thread.* ライブラリーをそれぞれリンクします。

以下の表は、選択するインテル® MKL ライブラリーと OpenMP* ランタイム・ライブラリーの説明です (スタティックの場合のみ)。

スレッドレイヤーで libmkl_sequential.a ライブラリーを選択すると、インテル® MKL 呼び出しからスレッド化が削除されます。

コンパイラー

マルチスレッド?

スレッドレイヤー

RTL を推奨

インテル

問題になりません

libmkl_intel_thread.a

libiomp5.so

PGI*

libmkl_pgi_thread.a または libmkl_sequential.a

PGI* が提供

PGI*

X

libmkl_intel_thread.a

libiomp5.so

PGI*

X

libmkl_pgi_thread.a

PGI* が提供

PGI*

X

libmkl_sequential.a

なし

GNU*

libmkl_gnu_thread.a または libmkl_sequential.a

GNU* OpenMP* ランタイム・ライブラリー

GNU*

X

libmkl_intel_thread.a

libiomp5.so

GNU*

X

libmkl_gnu_thread.a

GNU* OpenMP* ランタイム・ライブラリー

GNU*

X

libmkl_sequential.a

なし

最適化に関する注意事項

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

改訂 #20110804


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