異なるメッセージ・パッシング・インターフェイス (MPI) ライブラリーはアプリケーション・プログラミング・インターフェイス (API) レベルでは互換性がありますが、アプリケーション・バイナリー・インターフェイス (ABI) レベルでは互換性がない場合があります。そのため、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) では特定の MPI ライブラリーをサポートする事前ビルドされた BLACS ライブラリーのセットを提供しています。しかし、ほかの MPI ライブラリーをインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) で使用することはできません。このギャップを埋めるため、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) には、MPI に依存しない ABI を提供する oneMKL MPI ラッパーも含まれています。アダプターはソースコードで提供されます。デフォルトでサポートされていない MPI ライブラリーをインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) で使用するには、アダプターを使用してカスタム・スタティックまたはダイナミック BLACS ライブラリーをビルドし、事前ビルド・ライブラリーと同じように使用します。
MKL MPI ラッパーは、<mkl ディレクトリー>\/interfaces\/mklmpi ディレクトリーにあります。
カスタム BLACS ライブラリーをビルドするには、上記のディレクトリーで make コマンドを実行します。
次に例を示します。
make libintel64
このコマンドは、現在のシェル環境で MPI コンパイラーを使用して、静的カスタム BLACS ライブラリー libmkl_blacs_custom_lp64.alib をビルドします。カスタム・ライブラリーのビルド方法を定義するターゲットおよび変数は、<mkl ディレクトリー>\/interfaces\/mklmpi\/makefile を参照してください。MPICC 変数でコンパイラーを指定できます。
ビルドプロセスの制御についての詳細は、次のコマンドを使用してドキュメントを参照してください。
make help
静的リンクの場合、事前ビルドされた BLACS ライブラリーを使用するのと全く同じ方法でカスタム・ライブラリーをリンカーに渡します。例えば、libmkl_blacs_intelmpi_lp64.a ライブラリーの代わりに、libmkl_blacs_custom_lp64.a を渡します。