インテル® oneAPI マス・カーネル・ライブラリーを使用する前に知っておくべきこと

数学問題

必要なすべてのインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) 関数ドメインを特定します。

  • BLAS
  • スパース BLAS
  • LAPACK
  • PBLAS
  • ScaLAPACK
  • スパース・ソルバー・ルーチン
  • クラスター向け並列直接スパースソルバー
  • ベクトル数学関数 (VM)
  • ベクトル統計関数 (VS)
  • フーリエ変換関数 (FFT)
  • クラスター FFT
  • 三角関数変換ルーチン
  • ポアソン、ラプラス、ヘルムホルツ・ソルバー・ルーチン
  • 最適化 (信頼領域) ソルバールーチン
  • データ適合関数
  • 拡張固有値ソルバー

理由: 使用する関数ドメインを特定することで、『インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) デベロッパー・リファレンス』でルーチンを検索する項目が絞り込めます。さらに、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) クラスターを使用している場合、リンクラインは関数ドメイン固有になります (インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) クラスター・ソフトウェアの動作を参照)。コーディングのヒントは、関数ドメインにより異なります (パフォーマンスを向上させるためのヒントと手法を参照)。

プログラミング言語

インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は、Fortran と C/C++ プログラミングを広範囲にサポートしています。使用する関数ドメインでサポートされる言語インターフェイスを特定します (付録 A: インテル® oneAPI マス・カーネル・ライブラリー言語インターフェイスのサポートを参照)。

理由: インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) には、プログラム開発を容易にする各関数ドメイン用に言語固有のインクルード・ファイルが用意されています (言語インターフェイスのサポート、関数ドメイン別を参照)。

言語固有のインターフェイス・ライブラリーとモジュールの一覧、および使用例は、言語固有インターフェイスとインテル® oneAPI マス・カーネル・ライブラリーの使用を参照してください。

整数データの範囲

インテル® 64 アーキテクチャー・ベースのシステムでは、アプリケーションで大規模なデータ配列 (231-1 以上の要素を含む配列) の計算を実行するかどうかを決定します。

理由: 大規模なデータ配列を処理するには、ILP64 インターフェイス (整数が 64 ビット) を選択する必要があります。その他の場合は、デフォルトの LP64 インターフェイス (整数が 32 ビット) を使用します (ILP64 インターフェイスと LP64 インターフェイスの使用を参照)。

スレッド化モデル

アプリケーションがスレッド化されているかどうか、またどのようにスレッド化されているかを特定します。

  • インテル® コンパイラーでスレッド化
  • サードパーティーのコンパイラーでスレッド化
  • スレッド化されていない

理由: アプリケーションのスレッド化に使用するコンパイラーにより、アプリケーションとリンクするスレッド・ライブラリーが決まります。サードパーティー製のコンパイラーを使用してアプリケーションをスレッド化する場合、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) をシーケンシャル・モードで使用する必要があります (詳細は、スレッド・ライブラリーのリンクを参照)。

スレッド数

アプリケーションが OpenMP* スレッド・ランタイム・ライブラリーを使用する場合は、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) で使用するスレッド数を決定します。

理由: デフォルトで、OpenMP* ランタイム・ライブラリーは、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) のスレッド数を自動的に設定します。異なる数が必要な場合は、利用可能なメカニズムを使用して自身で設定する必要があります。詳細は、スレッド化によるパフォーマンスの向上を参照してください。

リンクモデル

アプリケーションとインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) をリンクする適切なリンクモデルを決定します。

  • 静的
  • 動的

理由: 静的リンクと動的リンクでは、リンクするライブラリーは異なります。静的および動的モデルのリンク・ライブラリーのリスト、リンクの例、その他の関連情報 (カスタム動的ライブラリーを作成してディスク容量を節約する方法など) は、アプリケーションとインテル® oneAPI マス・カーネル・ライブラリーのリンクを参照してください。

MPI を使用:

インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) クラスターで使用する MPI を決定します。インテル® MPI の最新バージョンを使用することを強く推奨します。

理由: アプリケーションと ScaLAPACK やクラスター FFT をリンクする際に、使用する MPI に対応するライブラリーをリンク行で指定する必要があるためです (インテル® oneAPI マス・カーネル・ライブラリー・クラスター・ソフトウェアの動作を参照)。

製品および性能に関する情報

性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。

改訂 #20201201