スレッド化レイヤーと RTL のライブラリーの選択

インテル® マス・カーネル・ライブラリー (インテル® MKL) がサポートしているいくつかのコンパイラーは、スレッド化に OpenMP* テクノロジーを使用しています。 インテル® MKL は、これらのコンパイラーが提供する OpenMP テクノロジーの実装をサポートしています。このサポートを使用するには、スレッド化レイヤーとコンパイラー・サポート・ランタイム・ライブラリー (RTL) の適切なライブラリーをリンクする必要があります。

スレッド化レイヤー

インテル® MKL スレッド化ライブラリーにはそれぞれ、サポートしているコンパイラー (インテル® コンパイラー、GNU コンパイラーおよび PGI* コンパイラー(Linux* の場合) でコンパイルされた同じコードが含まれています。

RTL

このレイヤーには、インテル® コンパイラーの互換 OpenMP ランタイム・ライブラリー libiomp が含まれます。 インテル® コンパイラーに加えて、libiomp は、別のスレッド化コンパイラー (Linux* の場合 GNU) もサポートします。 つまり、GNU コンパイラーを使用してスレッド化されたプログラムは、インテル® MKL および libiomp と安全にリンクすることができます。

以下の表は、インテル® MKL を使用したときに選択するスレッド化ライブラリーと RTL の説明です (スタティックの場合のみ)。

コンパイラー

マルチスレッド?

スレッド化レイヤー

RTL を推奨

コメント

インテル

問題になりません

libmkl_intel_thread.a

libiomp5.so

PGI

libmkl_pgi_thread.a or libmkl_sequential.a

PGI* が提供

libmkl_sequential.a を使用すると、インテル® MKL 呼び出しからスレッド化が削除されます。

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

libiomp5.so または GNU OpenMP ランタイム・ライブラリー

libiomp5 は優れたスケーリング・パフォーマンスを提供します。

gnu

libmkl_sequential.a

なし

gnu

X

libmkl_intel_thread.a

libiomp5.so

その他

libmkl_sequential.a

なし

その他

X

libmkl_intel_thread.a

libiomp5.so


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

© 2006 - 2010 Intel Corporation. 無断での引用、転載を禁じます。