- RMA 機能を利用する MPI アプリケーションでパフォーマンスが低下した場合、I_MPI_SCALABLE_OPTIMIZATION = 0 を設定することを推奨します。
- I_MPI_JOB_FAST_STARTUP 変数は、shm がノード内ファブリックとして選択された場合にのみ有効です。
- ILP64 は Fortran 2008 の MPI モジュールではサポートされていません。
- プログラムが終了した場合、/dev/shm/ ディレクトリーの不要なファイルを手動で削除します:
rm -r /dev/shm/shm-col-space-*
- 同時に使用されるコミュニケーターの数が多い (ノードあたり 10,000 を超える) 場合、次のいずれかの方法を使用してメモリーマップの最大数を増やすことを推奨します。
echo 1048576 > /proc/sys/vm/max_map_count
sysctl -w vm.max_map_count=1048576
- I_MPI_COLL_INTRANODE=pt2pt 変数を設定して共有メモリー収集を無効にします。
- 一部の Linux* ディストリビューションでは、セキュリティーの制限により、root 以外のユーザーがインテル® MPI ライブラリーを利用できません。この問題は Ubuntu* 12.04 で報告されましたが、ほかのディストリビューションやバージョンでも発生する可能性があります。2 つの回避策があります。
- root 以外のユーザーで ptrace を有効にします。
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- インテル® MPI ライブラリーのバージョンを戻して、I_MPI_SHM_LMT=shm の設定による影響を受けない以前の共有メモリーメカニズムを使用します。
- Ubuntu* では、子プロセス以外にデバッガーをアタッチできません。-gdb を使用するには、sysctl値 /proc/sys/kernel/yama/ptrace_scope を 0 に設定して、この機能を無効にします。
- Windows* ホストから ssh を使用してクロス OS を実行すると、実行に失敗します。2 つの回避策があります。
- Windows* の pmi_proxy へのパスと同等の symlink を Linux* ホストに作成します。
- Linux* ホストからバックグラウンドで hydra_persist を開始して (hydra_persist &)、Windows* ホストから -bootstrap サービスを使用します。この場合、Hydra サービスをインストールして Windows* ホストで開始する必要があります。
- OFA ファブリックや特定の DAPL プロバイダーでは、インテル® Omni-Path ファブリックが動作しなかったり、適切なパフォーマンスが得られないことがあります。適切なパフォーマンスを得るには、OFI または TMI ファブリックを指定します。
- 統計収集を有効にすると MPI_Finalize にかかる時間が増えることがあります。
- システムにインテル® True Scale ファブリックまたはインテル® Omni-Path ファブリックのみを利用可能なノードとインテル® True Scale とほかのファブリック (Mellanox* HCA など) を利用可能なノードが混在する場合、ノード間のファブリックとして前者は OFI/TMI を選択し、後者は DAPL を選択するため、ファブリックの自動検出がハングアップしたり、失敗することがあります。この問題を回避するには、すべてのノードで利用可能なファブリックを明示的に指定します。
- 複数のオペレーティング・システム (Linux* と Windows*) のジョブを実行するには、すべてのバイナリーを同じシングルスレッドまたはマルチスレッド MPI ライブラリーにリンクする必要があります。互換性のないシングルスレッド/マルチスレッド・ライブラリーは混在させるべきではありません。インテル® MPI Benchmarks 向けにあらかじめコンパイルされているバイナリーは、同じライブラリーにリンクされていないため (Linux* バージョンはマルチスレッド・ライブラリーにリンクされ、Windows* バージョンはシングルスレッド・ライブラリーにリンクされているため)、同じライブラリーを使用するようにどちらか一方をリビルドする必要があります。
- インテル® MPI ライブラリーは、インテル® Symmetric Communication Interface (インテル® SCI) アダプターを利用した OFA ファブリックの使用をサポートしていません。インテル® MIC アーキテクチャーなどでインテル® SCI アダプターを使用している場合は、別のファブリックを選択する必要があります。
- PSM 上の TMI および OFI ファブリックは、232 - 1 バイトを超えるメッセージをサポートしていません。これよりも大きなメッセージがある場合は、別のファブリックを選択してください。
- プロセス・アタッチメント・メカニズムを使用して既存の 2 つの MPI アプリケーション間に通信が確立されている場合、ライブラリーはそれぞれのアプリケーションで同じファブリックが選択されているかどうかを制御しません。そのため、アプリケーションで予期しない動作が発生することがあります。この問題は、各アプリケーションの I_MPI_FABRICS 環境変数を同じにすることで回避できます。
- dlopen(3).でスレッドセーフなライブラリーをロードしません。
- アプリケーションで system(3)、fork(2)、vfork(2)、clone(2) システムコールを使用すると、特定の DAPL プロバイダーは正しく動作しないことがあります。これらのシステムコールや、これらのシステムコールに基づく関数をこれらのプロバイダーで使用しないでください。例えば、system(3) を、正式バージョン 2.6.16 よりも古い Linux* カーネルバージョンを使用する OFED DAPL プロバイダーで使用しないでください。互換性のあるカーネルバージョンの OFED を有効にするには、RDMAV_FORK_SAFE 環境変数を設定します。
- MPI_Mprobe、MPI_Improbe、MPI_Cancel は、TMI および OFI ファブリックではサポートされていません。
- 一部のアプリケーション・プロセスがチェックポイント・イメージの取得中に終了した場合、チェックポイント/リスタートが有効なアプリケーションの最後にエラーメッセージが表示されることがあります。このようなエラーはアプリケーションに影響を与えないため、無視してかまいません。このエラーを回避するには、-checkpoint-interval オプションに以前よりも大きな値を設定します。次のようなエラーメッセージが表示されます。
[proxy:0:0@hostname] HYDT_ckpoint_blcr_checkpoint (./tools/ckpoint/blcr/ckpoint_blcr.c:313): cr_poll_checkpoint failed: No such process
[proxy:0:0@hostname] ckpoint_thread (./tools/ckpoint/ckpoint.c:559): blcr checkpoint returned error
[proxy:0:0@hostname] HYDT_ckpoint_finalize (./tools/ckpoint/ckpoint.c:878)
: Error in checkpoint thread 0x7
- インテル® MPI ライブラリーは、システムに /dev/shm デバイスが必要です。共有メモリーセグメントの作成に関するエラーを回避するには、/dev/shm デバイスのセットアップが正しく行われていることを確認してください。
- インテル® MPI ライブラリーは、TCP ソケットを使用して stdin ストリームをアプリケーションに渡しています。大きなファイルをリダイレクトすると、転送に長い時間がかかり、リモート側の通信がハングしているように見えることがあります。この問題を回避するには、コマンドライン・オプションを使用して大きなファイルをアプリケーションに渡してください。
- DAPL 自動プロバイダー選択メカニズムおよび強化された NUMA のサポートには dapl-2.0.37 以降が必要です。
- I_MPI_SHM_LMT=direct に設定した場合、バージョン 3.2 よりも古い Linux* カーネルでは、この設定は影響しません。
- デフォルトの MPI 設定を使用したインテル® Xeon Phi™ プロセッサーで isolcpus Linux* ブート・パラメーターを使用すると、アプリケーションの起動に失敗することがあります。可能な場合は、isolcpus Linux* ブート・パラメーターを変更または削除します。パラメーターを変更または削除できない場合は、I_MPI_PIN を off に設定してください。
- 場合によっては、OFA ファブリックで集団呼び出しを行うと、正確な結果が得られないことがあります。この問題を解決するには、I_MPI_ADJUST_ALLGATHER の値を 1 から 4 までに設定してください。