資料番号: 310702-003J
概要
はじめに
ディレクトリー構造の概要
ディレクトリー構造の詳細
インテル MKL の構成
インテル® Visual Fortran の構成
アプリケーションとインテル MKL のリンク
スレッド化
著作権と商標について
本ガイドは、インストール後に実行する必要のある手順や簡単な使用例など、インテル® マス・カーネル・ライブラリー (インテル® MKL) Windows* 版の習得に役立つ情報を提供します。アプリケーションのライブラリーへのリンク方法、ライブラリーの構成方法、その他の基本的な手順について説明します。
本ガイドは、インテル MKL が既にマシンにインストールされていることを前提として説明しています。
製品をまだインストールしていない場合は、「インストール・ガイド」 (Install.htm ファイル) を参照してください。
インテル MKL のインストール後、インストールとライブラリーの構成が適切に行われたかどうかを次の手順で確認すると良いでしょう。
インストール後のインテル MKL のディレクトリー構造を以下に示します。
mkl\9.0 | メイン・ディレクトリー | |
mkl\9.0\doc | ドキュメント・ディレクトリー | |
mklEULA.rtf | インテル MKL ライセンス | |
Doc_Index.htm | インテル MKL ドキュメント・インデックス | |
fftw2xmkl_notes.htm | FFTW 2.x インターフェイス・サポート・テクニカル・ユーザー・ノート | |
fftw3xmkl_notes.htm | FFTW 3.x インターフェイス・サポート・テクニカル・ユーザー・ノート | |
fft2dfti.pdf | インテル MKL FFT から DFTI ラッパー・テクニカル・ユーザー・ノート | |
Getting_Started.htm | インテル MKL 入門ガイド (本ガイド) | |
Install.htm | インストール・ガイド | |
mkl.chm | インテル MKL リファレンス・マニュアルの HTML ヘルプバージョン | |
mklman.pdf | インテル MKL リファレンス・マニュアル | |
mklman80_j.pdf | インテル MKL リファレンス・マニュアル (日本語) | |
mklqref/index.htm | インテル MKL クイック・リファレンス | |
mklsupport.txt | サポート用のパッケージ ID 情報 | |
mkluse.htm | インテル MKL テクニカル・ユーザー・ノート | |
Readme.txt | 製品に関する基本情報 | |
redist.txt | 再配布可能なファイルの一覧 | |
Release_Notes.htm | リリースノート | |
vmlnotes.htm | VML の概要 | |
vslnotes.pdf | VSL の概要 | |
mkl\9.0\examples | ソースおよびデータ例 | |
mkl\9.0\include | ライブラリー・ルーチンの INCLUDE ファイル、テストの INCLUDE ファイル、プログラム例 | |
mkl\9.0\interfaces\blas95 | BLAS 用の f95 ラッパーとライブラリーのビルド用 makefile | |
mkl\9.0\interfaces\lapack95 | LAPACK 用の f95 ラッパーとライブラリーのビルド用 makefile | |
mkl\9.0\interfaces\fftw2xc | インテル MKL DFTI を呼び出す FFTW バージョン 2.x 用のラッパー (C インターフェイス) | |
mkl\9.0\interfaces\fftw2xf | インテル MKL DFTI を呼び出す FFTW バージョン 2.x 用のラッパー (Fortran インターフェイス) | |
mkl\9.0\interfaces\fftw3xc | インテル MKL DFTI を呼び出す FFTW バージョン 3.x 用のラッパー (C インターフェイス) | |
mkl\9.0\interfaces\fftw3xf | インテル MKL DFTI を呼び出す FFTW バージョン 3.x 用のラッパー (Fortran インターフェイス) | |
mkl\9.0\interfaces\fftc | インテル MKL DFTI を呼び出す FFT 用のラッパー (C インターフェイス) | |
mkl\9.0\interfaces\fftf | インテル MKL DFTI を呼び出す FFT 用のラッパー (Fortran インターフェイス) | |
mkl\9.0\tests | テストのソースおよびデータ | |
mkl\9.0\ia32\bin | IA-32 アプリケーション用 DLL | |
mkl\9.0\ia32\lib | IA-32 アプリケーション用スタティック・ライブラリーおよび IA-32 アプリケーション用 DLL に対するスタティック・インターフェイス | |
mkl\9.0\em64t\bin | インテル® 64 プロセッサー上で実行されるアプリケーション用 DLL | |
mkl\9.0\em64t\lib | インテル 64 プロセッサー上で実行される IA-32 アプリケーション用スタティック・ライブラリーおよびインテル 64 プロセッサー上で実行される IA-32 アプリケーション用 DLL に対するスタティック・インターフェイス | |
mkl\9.0\ia64\bin | Itanium® 2 ベース・アプリケーション用 DLL | |
mkl\9.0\ia64\lib | Itanium 2 ベース・アプリケーション用スタティック・ライブラリーおよび Itanium 2 ベース・アプリケーション用 DLL に対するスタティック・インターフェイス | |
mkl\9.0\tools\builder | 動的にリンク可能なカスタム・ライブラリーを作成するためのツール | |
mkl\9.0\tools\environment | ユーザーシェルで環境変数を設定するバッチファイル | |
mkl\9.0\tools\support | インテル® プレミアサポートへパッケージ ID とライセンスキー情報を報告するためのユーティリティー |
インテル MKL では、IA-32 プロセッサー用、インテル 64 プロセッサー用、およびインテル Itanium 2 プロセッサー用に、別々のライブラリーを用意しています。
インテル MKL は、次の 3 つで構成されています。
mkl_ia32.lib
、mkl_em64t.lib
、および mkl_ipf.lib
内のプロセッサー固有のカーネル
現在、IA-32 プロセッサー用に次の 2 つのライブラリーが用意されています。それぞれのライブラリーは、異なるインターフェイスをサポートします。
mkl_c.lib
(cdecl インターフェイス)mkl_s.lib
(CVF デフォルト・インターフェイス)インテル 64 プロセッサーおよび Itanium プロセッサーでは、関数呼び出しの基準が 1 つであるため、これらのインターフェイス・ライブラリーは用意されていません。ハイレベルなライブラリーは、特定のプロセッサーを対象とせずに最適化されているため、インテル® Pentium® プロセッサーからインテル® Core™2 Extreme プロセッサー・ファミリーやインテル Itanium 2 プロセッサーまでのプロセッサーで効果的に使用することができます。BLAS、CBLAS、スパース BLAS、GMP、FFT、DFT、VML、VSL、および区間演算ルーチンを含むプロセッサー固有のカーネルは、それぞれのプロセッサー用に最適化されています。
また、スレッド化アプリケーションは次のように提供されます。
libguide.lib
) 静的にリンクするスタティック・リンク・ライブラリー (階層化されたソフトウェアの複数のコピーで静的リンクを行うと性能上の問題が、複数のコピーが初期化された場合は正当性問題がそれぞれ発生することがあるため、非推奨)libguide40.dll
) インテル MKL に動的にリンクするダイナミック・リンク・ライブラリー (推奨)
ライブラリーの詳細なディレクトリー構造を次に示します。
ia32 | 32 ビット・アプリケーション用のすべてのライブラリー | |
ia32\bin | IA-32 アプリケーション用 DLL | |
mkl_lapack32.dll | 単精度データ型 LAPACK ルーチンおよびドライバー | |
mkl_lapack64.dll | 倍精度データ型 LAPACK ルーチンおよびドライバー | |
mkl_def.dll | デフォルトカーネル (インテル Pentium プロセッサー、インテル Pentium Pro プロセッサー、およびインテル Pentium II プロセッサー) | |
mkl_p3.dll | インテル Pentium III プロセッサー・カーネル | |
mkl_p4.dll | インテル Pentium 4 プロセッサー・カーネル | |
mkl_p4p.dll | ストリーミング SIMD 拡張命令 3 (SSE3) 対応インテル Pentium 4 プロセッサー用カーネル | |
mkl_p4m.dll | インテル Core マイクロアーキテクチャー・ベースのプロセッサー用カーネル | |
mkl_vml_def.dll | デフォルトカーネルの VML 部分 (インテル Pentium プロセッサー、インテル Pentium Pro プロセッサー、インテル Pentium II プロセッサー) | |
mkl_vml_p3.dll | インテル Pentium III プロセッサー用カーネルの VML 部分 | |
mkl_vml_p4.dll | インテル Pentium 4 プロセッサー用カーネルの VML 部分 | |
mkl_vml_p4p.dll | ストリーミング SIMD 拡張命令 3 (SSE3) 対応インテル Pentium 4 プロセッサー用 VML/VSL | |
mkl_vml_p4m.dll | インテル Core マイクロアーキテクチャー・ベースのプロセッサー用 VML/VSL | |
mkl_ias.dll | 区間演算ルーチン | |
libimalloc.dll | メモリー関数名前変更サポート用ダイナミック・ライブラリー | |
libguide40.dll | ダイナミック・スレッディング・ライブラリー | |
MSVCR71.DLL | Microsoft* ランタイム・ライブラリー | |
ia32\lib | 32 ビット・アプリケーション用スタティック・ライブラリーおよび 32 ビット・アプリケーション用 DLL に対するスタティック・インターフェイス | |
mkl_c.lib | cdecl インターフェイス・ライブラリー | |
mkl_s.lib | CVF デフォルト・インターフェイス・ライブラリー | |
mkl_c_dll.lib | ダイナミック・ライブラリー用 cdecl インターフェイス・ライブラリー | |
mkl_s_dll.lib | ダイナミック・ライブラリー用 CVF デフォルト・インターフェイス・ライブラリー | |
mkl_lapack.lib | LAPACK ルーチンおよびドライバー | |
mkl_solver.lib | スパース・ソルバー・ルーチン | |
mkl_ia32.lib | 32 ビット・アプリケーション用に最適化されたカーネル (BLAS、CBLAS、スパース BLAS、GMP、FFT、DFT、VML、VSL、区間演算) | |
libguide40.lib | ダイナミック・スレッディング・ライブラリー用インターフェイス・ライブラリー | |
libguide.lib | スタティック・スレッディング・ライブラリー | |
interfaces フォルダーにある makefile を処理すると、追加のインターフェイス・ライブラリーが生成されます。セクションの最後にあるリストを参照。 | ||
em64t | インテル 64 対応アプリケーション用のすべてのライブラリー | |
em64t\bin | インテル 64 対応アプリケーション用 DLL | |
mkl_lapack32.dll | 単精度データ型 LAPACK ルーチンおよびドライバー | |
mkl_lapack64.dll | 倍精度データ型 LAPACK ルーチンおよびドライバー | |
mkl_def.dll | インテル 64 プロセッサー用デフォルトカーネル | |
mkl_p4n.dll | インテル 64 対応インテル® Xeon® プロセッサー用カーネル | |
mkl_mc.dll | インテル Core マイクロアーキテクチャー・ベースのプロセッサー用カーネル | |
mkl_vml_def.dll | インテル 64 プロセッサー用デフォルトカーネルの VML 部分 | |
mkl_vml_p4n.dll | インテル 64 対応インテル Xeon プロセッサー用 VML/VSL | |
mkl_vml_mc.dll | インテル Core マイクロアーキテクチャー・ベースのプロセッサー用 VML/VSL | |
mkl_ias.dll | 区間演算ルーチン | |
libimalloc.dll | メモリー関数名前変更サポート用ダイナミック・ライブラリー | |
libguide40.dll | ダイナミック・スレッディング・ライブラリー | |
em64t\lib | インテル 64 プロセッサー用スタティック・ライブラリーおよびインテル 64 プロセッサー用 DLL に対するスタティック・インターフェイス | |
mkl_dll.lib | ダイナミック・ライブラリー用インターフェイス・ライブラリー | |
mkl_lapack.lib | LAPACK ルーチンおよびドライバー | |
mkl_solver.lib | スパース・ソルバー・ルーチン | |
mkl_em64t.lib | インテル 64 プロセッサー用に最適化されたカーネル (BLAS、cblas、スパース BLAS、GMP、FFT、DFT、VML、VSL、区間演算) | |
libguide40.lib | ダイナミック・スレッディング・ライブラリー用インターフェイス・ライブラリー | |
libguide.lib | スタティック・スレッディング・ライブラリー | |
interfaces フォルダーにある makefile を処理すると、追加のインターフェイス・ライブラリーが生成されます。セクションの最後にあるリストを参照。 | ||
ia64 | Itanium 2 ベース・アプリケーション用のすべてのライブラリー | |
ia64\bin | Itanium 2 ベース・アプリケーション用 DLL | |
mkl_lapack32.dll | 単精度データ型 LAPACK ルーチンおよびドライバー | |
mkl_lapack64.dll | 倍精度データ型 LAPACK ルーチンおよびドライバー | |
mkl_i2p.dll | Itanium 2 プロセッサー用カーネル | |
mkl_vml_i2p.dll | Itanium 2 プロセッサー用カーネルの VML 部分 | |
mkl_ias.dll | 区間演算ルーチン | |
libimalloc.dll | メモリー関数名前変更サポート用ダイナミック・ライブラリー | |
libguide40.dll | スレッディング・ライブラリー | |
ia64\lib | Itanium 2 ベース・アプリケーション用スタティック・ライブラリーおよび Itanium 2 ベース・アプリケーション用 DLL に対するスタティック・インターフェイス | |
mkl_dll.lib | DLL に対するインターフェイス・ライブラリー | |
mkl_lapack.lib | LAPACK ルーチンおよびドライバー | |
mkl_solver.lib | スパース・ソルバー・ルーチン | |
mkl_ipf.lib | Itanium 2 プロセッサー用カーネル (BLAS、cblas、スパース BLAS、GMP、FFT、DFT、VML、VSL、区間演算) | |
libguide40.lib | ダイナミック・スレッディング・ライブラリー用インターフェイス・ライブラリー | |
libguide.lib | スタティック・スレッディング・ライブラリー |
以下のインターフェイス・ライブラリーとモジュールは、interfaces フォルダーにある makefile を処理すると生成されます。
libmkl_blas95.lib | BLAS 用の Fortran-95 ラッパー (BLAS95) |
libmkl_lapack95.lib | LAPACK 用の Fortran-95 ラッパー (LAPACK95) |
libfftw2xc_gnu.lib | インテル MKL DFTI を呼び出す FFTW バージョン 2.x 用のインターフェイス (GNU コンパイラー用 C インターフェイス) |
libfftw2xc_intel.lib | インテル MKL DFTI を呼び出す FFTW バージョン 2.x 用のインターフェイス (インテル・コンパイラー用 C インターフェイス) |
libfftw2xf_gnu.lib | インテル MKL DFTI を呼び出す FFTW バージョン 2.x 用のインターフェイス (GNU コンパイラー用 Fortran インターフェイス) |
libfftw2xf_intel.lib | インテル MKL DFTI を呼び出す FFTW バージョン 2.x 用のインターフェイス (インテル・コンパイラー用 Fortran インターフェイス) |
libfftw3xc_gnu.lib | インテル MKL DFTI を呼び出す FFTW バージョン 3.x 用のインターフェイス (GNU コンパイラー用 C インターフェイス) |
libfftw3xc_intel.lib | インテル MKL DFTI を呼び出す FFTW バージョン 3.x 用のインターフェイス (インテル・コンパイラー用 Fortran インターフェイス) |
libfftw3xf_gnu.lib | インテル MKL DFTI を呼び出す FFTW バージョン 3.x 用のインターフェイス (GNU コンパイラー用 Fortran インターフェイス) |
libfftw3xf_intel.lib | インテル MKL DFTI を呼び出す FFTW バージョン 3.x 用のインターフェイス (インテル・コンパイラー用 Fortran インターフェイス) |
mkl95_blas.mod | BLAS 用の Fortran-95 インターフェイス・モジュール (BLAS95) |
mkl95_lapack.mod | LAPACK 用の Fortran-95 インターフェイス・モジュール (LAPACK95) |
mkl95_precision.mod | BLAS95 および LAPACK95 用精度パラメーターの Fortran-95 定義 |
インテル MKL の機能をさらにカスタマイズする場合は、構成ファイル mkl.cfg を使用します。このファイルには、変更可能な変数が含まれています。構成ファイルの使用に関する詳細は、「テクニカル・ユーザー・ノート 」を参照してください。
IA-32 アプリケーション、インテル 64 対応アプリケーション、または Itanium 2 ベース・アプリケーションをリンクする場合、1 つのライブラリーのみをリンクします。IA-32 アプリケーションの場合、選択したインターフェイスに応じて mkl_c.lib
または mkl_s.lib
をリンクします。
インテル 64 対応アプリケーション、Itanium 2 ベース・アプリケーションでは、それぞれ mkl_em64t.lib
と mkl_ipf.lib
をリンクします。同様に、動的にリンクするときに、DLL へのインターフェイスを提供する次のスタティック・ライブラリーの 1 つを使用してもかまいません。
mkl_c_dll.lib
または mkl_s_dll.lib
(IA-32 アプリケーションの場合)
mkl_dll.lib
(インテル 64 対応アプリケーションおよび Itanium 2 ベース・アプリケーションの場合)
これらのインターフェイス・ライブラリーはランタイム時に DLL をロードするため、ソースコードを変更する必要はありません。
コマンドラインで入力する各対応アーキテクチャー用のライブラリー、mkl_lapack95.lib
と mkl_blas95.lib
は、オリジナルのディストリビューションには含まれないため、インターフェイスを使用する前にビルドする必要があります (ライブラリーのビルドについての詳細は、次の「Fortran-95 インターフェイスおよび LAPACK と BLAS へのラッパーを使用する際の注意」を参照してください)。
インテル® Fortran コンパイラー 9.1 と CVF を使用した場合の例を以下に示します。
IA-32
ifort myprog.f mkl_c.lib libguide.lib
myprog.f
、スパースソルバー、LAPACK、カーネルのスタティック・リンク用 cdecl インターフェイス。
ifort myprog.f mkl_lapack95.lib mkl_c.lib libguide.lib
myprog.f
、Fortran-95 LAPACK インターフェイス、カーネルのスタティック・リンク用 cdecl インターフェイス。
ifort myprog.f mkl_blas95.lib mkl_c.lib libguide.lib
myprog.f
、Fortran-95 BLAS インターフェイス、カーネルのスタティック・リンク用 cdecl インターフェイス。
df myprog.f mkl_s.lib libguide.lib
myprog.f
、スパースソルバー、LAPACK、カーネルのスタティック・リンク用 CVF デフォルト・インターフェイス。
ifort myprog.f mkl_c_dll.lib libguide40.lib
myprog.f
のダイナミック・リンク用 cdecl インターフェイス。DLL ディスパッチャーにより、プロセッサーのダイナミック・カーネルに対して適切な DLL がロードされます。
df myprog.f mkl_s_dll.lib libguide40.lib
myprog.f
のダイナミック・リンク用 CVF デフォルト・インターフェイス。DLL ディスパッチャーにより、プロセッサーのダイナミック・カーネルに対して適切な DLL がロードされます。
インテル 64
ifort myprog.f mkl_em64t.lib libguide.lib
myprog.f
、LAPACK、カーネルのスタティック・リンク。
ifort myprog.f mkl_lapack95.lib mkl_em64t.lib libguide.lib
myprog.f
、Fortran-95 LAPACK インターフェイス、カーネルのスタティック・リンク。
ifort myprog.f mkl_blas95.lib mkl_em64t.lib libguide.lib
myprog.f
、Fortran-95 BLAS インターフェイス、カーネルのスタティック・リンク。
ifort myprog.f mkl_dll.lib libguide40.lib
myprog.f
のダイナミック・リンク。DLL ディスパッチャーにより、プロセッサーのダイナミック・カーネルに対する適切な DLL がロードされます。
ifort myprog.f mkl_solver.lib mkl_em64t.lib libguide.lib
myprog.f
、スパースソルバーおよび (スパースソルバーをサポートするのに必要なカーネルを含む) インテル MKL のその他のルーチンのスタティック・リンク。
インテル Itanium 2 プロセッサー・プラットフォーム
ifort myprog.f mkl_ipf.lib libguide.lib
myprog.f
、LAPACK、カーネルのスタティック・リンク。
ifort myprog.f mkl_lapack95.lib mkl_ipf.lib libguide.lib
myprog.f
、Fortran-95 LAPACK インターフェイス、カーネルのスタティック・リンク。
ifort myprog.f mkl_blas95.lib mkl_ipf.lib libguide.lib
myprog.f
、Fortran-95 BLAS インターフェイス、カーネルのスタティック・リンク。
ifort myprog.f mkl_dll.lib libguide40.lib
myprog.f
のダイナミック・リンク。DLL ディスパッチャーにより、プロセッサーのダイナミック・カーネルに対して適切な DLL がロードされます。
ifort myprog.f mkl_solver.lib mkl_ipf.lib libguide.lib
myprog.f
、スパースソルバーおよび (スパースソルバーをサポートするのに必要なカーネルを含む) インテル MKL のその他のルーチンのスタティック・リンク。
注意: libguide
を静的にリンクする場合 (非推奨)
libguide
バージョンにリンクしてください。つまり、-openmp オプションを使用してください。libguide
バージョンにリンクしてください。インテル MKL に動的にリンクする場合 (libguide40.dll
) (推奨)、PATH が定義されていることを確認し、正確にこのバージョンの libguide
が検出され、ランタイム時に使用されるようにしてください。
注意:
本リリースでは、次のライブラリーは、インテル 64 およびインテル Itanium 2 プロセッサー・プラットフォーム用のデフォルト・ライブラリーには含まれていません。
mkl_solver.lib
(スパース・ソルバー・ライブラリー)このライブラリーは、上記の例に示すようにリンクする必要があります。
リンク例は、インテル MKL サポート Web サイトよりご覧いただけます。 http://support.intel.com/support/jp/performancetools/index.htm
Fortran-95 インターフェイスは、純粋なプロシージャーのために、ラッパーとともにソースとして提供されます。これらを使用する最も簡単な方法は、対応するライブラリーをビルドし、ユーザー・ライブラリーとしてリンクする方法です。この方法では、ユーザーは管理者権限を保持していることが前提です。製品ディレクトリーに書き込み権限があれば、手順は簡単です。mkl\9.0\interfaces\blas95
または mkl\9.0\interfaces\lapack95
に移動し、次のコマンドのいずれかを入力します。
nmake PLAT=win32 lib
- IA32 の場合
nmake PLAT=win32e lib
- インテル 64 の場合
nmake PLAT=win64 lib
- インテル Itanium 2 プロセッサー・プラットフォームの場合
この結果、必要なライブラリーと .mod
ファイルがビルドされ、リリースの標準カタログにインストールされます。.mod
ファイルは、ifort -c mkl_lapack.f90
インターフェイスまたは ifort -c mkl_blas.f90
インターフェイスのファイルからも入手できます。ファイルは include
ディレクトリーに保存されています。
管理者権限がない場合は、次の操作を行ってください。
mkl\9.0\interfaces\blas95
または mkl\9.0\interfaces\lapack95
) をユーザー定義のディレクトリー <user_dir>
にコピーします。mkl_blas.f90
または mkl_lapack.f90
) を mkl\9.0\include
からユーザー定義のディレクトリー <user_dir>\blas95
または <user_dir>\lapack95
にそれぞれコピーします。<user_dir>\blas95
または <user_dir>\lapack95
で環境変数を追加し、上記コマンドを実行します。例を以下に示します。nmake PLAT=win32 INTERFACE=mkl_blas.f90 lib
nmake PLAT=win32 INTERFACE=mkl_lapack.f90 lib
.これで、必要なライブラリーと .mod
ファイルがビルドされ、それぞれ <user_dir>\blas95
ディレクトリーまたは <user_dir>\lapack95
ディレクトリーにインストールされます。
デフォルトでは、ifort コンパイラーが使用されると想定されています。make FC=<compiler>
のパラメーターでこれを変更することができます。例を以下に示します。
nmake PLAT=win64 FC=<compiler> lib
上級ユーザーの場合は、ライブラリーをビルドしなくてもインターフェイスを使用することができます。
ビルド・ディレクトリーからライブラリーを削除するには、次のコマンドを使用します。
nmake PLAT=win32 clean
- IA32 の場合
nmake PLAT=win32e clean
- インテル 64 の場合
nmake PLAT=win64 clean
- インテル Itanium 2 プロセッサー・プラットフォームの場合
インテル 64 対応アプリケーションおよび Itanium 2 ベース・アプリケーションの場合の注意
1289 以降の新しい SDK には、外部参照 _security_cookie
を解決する bufferoverflowu.lib
が含まれています。このライブラリーは、"BUF_LIB=bufferoverflowu.lib"
マクロとともに、例とテストの makefile に含まれます。古い SDK を使用する場合は、このマクロを空にする ("BUF_LIB="
) か、またはリンク文字列から削除します。
インテル MKL は、多くの個所でスレッド化されています。また、OpenMP* ソフトウェアを使用しています。
OpenMP ソフトウェアは、使用するスレッド数を設定する OMP_NUM_THREADS
環境変数を基にスレッド化を実行します。スレッド数の設定は、環境変数で設定 (Microsoft Windows の [コントロール パネル] から [システムのプロパティ] ボックスを開き、[環境変数] パネルで設定) するか、またはプログラムを実行するシェルで設定することができます。
変数 OMP_NUM_THREADS
が設定されていない場合、インテル MKL はスレッド数を 1 として実行します (ただし、スパースソルバーの場合は、デフォルトのスレッド数であるシステムのプロセッサー数が使用されます)。OMP_NUM_THREADS
は、常にアプリケーションで使用するプロセッサー数に設定しておくことを推奨します。
1D FFT における 2 の累乗データについては、インテル MKL はインテル Itanium プロセッサー用にのみ並列化を行うことに注意してください。
スレッド数を変更するには、プログラムを実行するコマンドライン・シェルで次のように入力します。
set OMP_NUM_THREADS=
<使用するスレッド数>
シェルによっては、以下のように設定します。
export OMP_NUM_THREADS=
<使用するスレッド数>
Microsoft Windows 98 または Windows Me ではマルチプロセッシングがサポートされていないため、この変数を設定してもその利点を得ることはできない点に注意してください。
インテル MKL のテクニカル情報に関する詳細は、「テクニカル・ユーザー・ノート 」 (mkluse.htm) を参照してください。
本資料に掲載されている情報は、インテル製品の概要説明を目的としたものです。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するためのものではありません。製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的所有権を侵害していないことへの保証を含む) にも一切応じないものとします。インテル製品は、医療、救命、延命措置、重要な制御または安全システム、核施設などの目的に使用することを前提としたものではありません。
インテル製品は、予告なく仕様や説明が変更される場合があります。
本資料で説明されているソフトウェアには、不具合が含まれている可能性があり、公開されている仕様とは異なる動作をする場合があります。現在までに判明している不具合の情報については、インテルのサポートサイトをご覧ください。
本資料およびこれに記載されているソフトウェアはライセンス契約に基づいて提供されるものであり、その使用および複製はライセンス契約で定められた条件下でのみ許可されます。本資料で提供される情報は、情報供与のみを目的としたものであり、予告なく変更されることがあります。また、本資料で提供される情報は、インテルによる確約と解釈されるべきものではありません。インテルは本資料の内容およびこれに関連して提供されるソフトウェアにエラー、誤り、不正確な点が含まれていたとしても一切責任を負わないものとします。
ライセンス契約で許可されている場合を除き、インテルからの文書による承諾なく、本書のいかなる部分も複製したり、検索システムに保持したり、他の形式や媒体によって転送したりすることは禁じられています。
機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を開発の前提にしないでください。留保または未定義の機能を不適当な方法で使用すると、開発したソフトウェア・コードをインテル・プロセッサー上で実行する際に、予測不可能な動作や障害が発生するおそれがあります。これらの機能や命令は、インテルが将来のために留保しているものです。不正な使用により、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。
Intel、インテル、Intel ロゴ、Intel Core、Itanium、Pentium、Xeon は、米国およびその他の国における Intel Corporation またはその子会社の商標または登録商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© 2005-2006 Intel Corporation.