web-dev-qa-db-ja.com

Intel MPI 'チャネルの初期化に失敗しました'エラー(mpirun)

3台のサーバーで構成される小さなクラスターをセットアップしようとしています。それらのハードウェアは同一であり、CentOS7を実行しています。IntelのクラスターコンパイラとMPI実装を使用しています。すべてがセットアップされています。パスワードなしですべてのノード間でsshできます。/optディレクトリをnfsと共有したので、which mpiccおよびwhich mpirunすべてのノードで成功します。 mpirun -hosts node1 -n 24 /home/cluster/testは私が実行しようとしているコマンドです(テストはIntelコンパイラのテストディレクトリのtest.cからコンパイルされ、すべてのノード間でnfsが共有されます)。単一のノードで正常に機能しますが、複数のノードで実行しようとすると、次のようになります。

[cluster@headnode ~]$ mpirun -hosts headnode -n 10 /home/cluster/test
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(784)...................: 
MPID_Init(1323).........................: channel initialization failed
MPIDI_CH3_Init(141).....................: 
MPID_nem_tcp_post_init(644).............: 
MPID_nem_tcp_connect(1107)..............: 
MPID_nem_tcp_get_addr_port_from_bc(1342): Missing ifname or invalid Host/port description in business card

グーグルは私に有用な答えを与えていない。また、基本的な仮想マシンクラスター(CentOs 6.5)をセットアップしましたが、まったく同じエラーが発生します(したがって、ハードウェアの問題ではありません)。

2
geniass

また、/etc/hostsおよび/またはDig headnodeをチェックして、ジョブが起動されたノードからホスト名が正しく解決されることを確認します。解決できない場合は、ジャンプする前にクラスター構成が不十分であることを確認します。 Intel MPIのせいです。ヘッドノードを正しく解決できない場合、これがOpenMPIやその他のディストリビューションで機能するとは思えません。ポートが開いていてファイアウォールの背後でアクセス可能であり、SE Linux /その他のセキュリティ機能ですべてが正しく構成されていることをさらに確認することは、明らかにノードにアクセスできないため、論理的な最初のステップになります。

これらの問題が発生し、Intel MPIを使用している場合は、最初にIntel MPI Benchmarks(IMB)でピンポンテストを実行し、それらを分析する必要があります。結果。インテルのWebサイトでそれを実行するための構文を調べてみましょう。インテルがすでに作成したテストとベンチマークは、思いつくものよりも優れており、この問題を診断するときにはるかに役立ちます。

1
Matt

私はそれを修正する方法を見つけました: https://software.intel.com/en-us/articles/using-intel-mpi-library-and-intel-xeon-phi-coprocessor-tips

基本的に、mpirun引数に-iface [network interface]を追加するか、.bashrcにexport I_MPI_HYDRA_IFACE=[network interface]を追加します

0
geniass