< 目次

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

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

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

MKL MPI ラッパーは、<mkl ディレクトリー>\interfaces\mklmpi ディレクトリーにあります。

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

次に例を示します。

nmake libintel64

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

ビルドプロセスをさらに制御するには、コマンドで表示できるヘルプを参照してください。

nmake help

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

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

動的カスタム BLACS ライブラリーを使用するには:

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

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

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

    • <dll_name> は指定された BLACS DLL をロードします。

      インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) の動的ライブラリーのディレクトリーまたはアプリケーション実行可能ファイルのディレクトリーで指定された DLL を検索します。

      mkl_set_mpi 関数の説明については、『インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) デベロッパー・リファレンス』を参照してください。

関連情報