インテル® MKL 11.3 ユーザーズガイド

カスタム・メッセージ・パッシング・インターフェイスの使用

異なるメッセージ・パッシング・インターフェイス (MPI) ライブラリーはアプリケーション・プログラミング・インターフェイス (API) レベルでは互換性がありますが、アプリケーション・バイナリー・インターフェイス (ABI) レベルでは互換性がない場合があります。そのため、インテル® MKL では特定の MPI ライブラリーをサポートする事前ビルド BLACS ライブラリーのセットを提供しています。しかし、ほかの MPI ライブラリーをインテル® MKL で使用することはできません。この問題を解決するため、インテル® MKL には、MPI に依存しない ABI をインテル® MKL に提供する、MKLMPI アダプターが含まれています。アダプターはソースコードで提供されます。デフォルトでサポートされていない MPI ライブラリーをインテル® MKL で使用するには、アダプターを使用してカスタム・スタティックまたはダイナミック BLACS ライブラリーをビルドし、事前ビルド・ライブラリーと同様に使用します。

カスタム BLACS ライブラリーのビルド

MKLMPI アダプターは、<mkl ディレクトリー>\interfaces\mklmpi ディレクトリーにあります。

カスタム BLACS ライブラリーをビルドするには、上記のディレクトリーから nmake コマンドを実行します。

次に例を示します。

nmake libintel64

このコマンドは、システムのデフォルト MPI コンパイラーを使用して、スタティック・カスタム BLACS ライブラリー mkl_blacs_custom_lp64.lib をビルドします。 カスタム・ライブラリーのビルド方法を定義するターゲットおよび変数は、<mkl ディレクトリー>\interfaces\mklmpi\makefile を参照してください。 MPICC 変数でコンパイラーを指定できます。

ビルドプロセスの制御についての詳細は、次のコマンドを使用してドキュメントを参照してください。

nmake help

カスタム BLACS ライブラリーの使用

スタティック・リンクの場合、事前ビルド BLACS ライブラリーを使用するのと全く同じ方法でカスタム BLACS ライブラリーを使用し、カスタム・ライブラリーをリンカーに渡します。 例えば、mkl_blacs_intelmpi_lp64.lib スタティック・ライブラリーを渡す代わりに、mkl_blacs_custom_lp64.lib を渡します。

ダイナミック・カスタム BLACS ライブラリーを使用するには、次の操作を行います。

  1. 事前ビルド BLACS ライブラリーを使用するときと同じ方法でアプリケーションをリンクします。

  2. mkl_set_mpi サポート関数を呼び出すか、MKL_BLACS_MPI 環境変数を次のいずれかの値に設定します。

    • CUSTOM

      アプリケーションにリンクした BLACS インターフェイスに応じて、デフォルト名 mkl_blacs_custom_lp64.dll (LP64) または mkl_blacs_custom_ilp64.dll (ILP64) でカスタム・ライブラリーをロードします。

    • <dll_name>

      指定された BLACS DLL をロードします。

      インテル® MKL は、インテル® MKL ダイナミック・ライブラリーのディレクトリーまたはアプリケーション実行ファイルのディレクトリーのいずれかで指定された DLL を探します。

      mkl_set_mpi 関数の詳細については、『インテル® MKL リファレンス・マニュアル』を参照してください。

関連情報