インテル® マス・カーネル・ライブラリー (インテル® MKL) がサポートしているいくつかのコンパイラーは、スレッド化に OpenMP* テクノロジーを使用しています。 インテル® MKL は、これらのコンパイラーが提供する OpenMP テクノロジーの実装をサポートしています。このサポートを使用するには、スレッド化レイヤーとコンパイラー・サポート・ランタイム・ライブラリー (RTL) の適切なライブラリーをリンクする必要があります。
インテル® MKL スレッド化ライブラリーにはそれぞれ、サポートしているコンパイラー (インテル® コンパイラーおよび PGI* コンパイラー(Windows* の場合) でコンパイルされた同じコードが含まれています。
このレイヤーには、インテル® コンパイラーの互換 OpenMP ランタイム・ライブラリー libiomp が含まれます。 インテル® コンパイラーに加えて、libiomp は、別のスレッド化コンパイラー (Windows の場合 Microsoft* Visual C++*) もサポートします。 つまり、Microsoft Visual C++ を使用してスレッド化されたプログラムは、インテル® MKL および libiomp と安全にリンクすることができます。
以下の表は、インテル® MKL を使用したときに選択するスレッド化ライブラリーと RTL の説明です (スタティックの場合のみ)。
コンパイラー |
マルチスレッド? |
スレッド化レイヤー |
RTL を推奨 |
コメント |
---|---|---|---|---|
インテル |
問題になりません |
mkl_intel_thread.lib |
libiomp5md.lib |
|
PGI |
○ |
mkl_pgi_thread.lib or mkl_sequential.lib |
PGI* が提供 |
mkl_sequential.lib を使用すると、インテル® MKL 呼び出しからスレッド化が削除されます。 |
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 2005 以降の OpenMP ライブラリーの場合。 |
Microsoft |
○ |
mkl_sequential.lib |
なし |
Win32 スレッド。 |
Microsoft |
X |
mkl_intel_thread.lib |
libiomp5md.lib |
|
その他 |
○ |
mkl_sequential.lib |
なし |
|
その他 |
X |
mkl_intel_thread.lib |
libiomp5md.lib |
スレッド化されたインテル® MKL を使用するには、/MT オプションを指定してコードをコンパイルします。 コンパイラー・ドライバーはオプションをリンカーに渡し、マルチスレッド (MT) ランタイム・ライブラリーがロードされます。
© 2007 - 2010 Intel Corporation. 無断での引用、転載を禁じます。