2017-05-05 26 views
0

2台以上のマシンでOpen MPIクラスタにプログラムを実行することはできません。3つ以上のホストを持つクラスタを設定するときにMPIエラーが発生する

私たちが実行している場合:

mpirun --host master,slave5,slave3 ./cluster 

それが動作します。

我々が実行した場合:

mpirun --host master,slave4,slave3,slave5 ./cluster 

我々は次のエラーを取得:slave5は上で動作するので、それは名前解決エラーのように見えるという事実にもかかわらず

ssh: Could not resolve hostname slave5: Temporary failure in name resolution 

が、それはないです最初のコマンド。

これまでのところ、何も解決せずに同じエラーを報告している人がいました。例:

任意のアイデア?

+0

が正しくあなたの設定は/ etc /すべてのホスト上のファイル(またはDNS)をホストしなかった(ポストすべて4ファイルはこちら)? 'ping'がターゲットホストの名前で使用されている場合、他のすべてのホストにpingを実行できます(これはターゲットホストで' hostname'コマンドが返すものです)? – osgx

+0

あなたがリンクしたメーリングリストのスレッドの最初の応答は、回避策を提供します。それはあなたのために問題を解決しますか? –

+0

この問題は、一部のフォーラムで見てきたように、https://www.mail-archive.com/[email protected]/msg29784.html でよく見かけますが、これは役に立ちます。 –

答えて

2

Open MPIはデフォルトではツリーベースのスポーンになっているため、ノードAからノードBへのssh、ノードBからノードCへのsshです。詳細はhttps://blogs.cisco.com/performance/tree-based-launch-in-open-mpihttps://blogs.cisco.com/performance/tree-based-launch-in-open-mpi-part-2を参照してください。したがって

あなたが(「mpirunの--mca plm_rsh_no_tree_spawn 1」を経由して - すべてのSSHのノードAから発生する原因になります)、ツリーベースの産卵を無効にした場合ならば、予想通り、あなたの打ち上げは動作します。

ただし、すべてのマシンからすべてのクラスタマシン名を解決できるようにする方がよい場合があります。あなたが正常にこのような何かを実行することができたときに、例えば、[開くMPIの打ち上げは、正常に機能する必要があります

foreach node (Node1 Node2 Node3 Node4 ...) 
 
    foreach other (Node1 Node2 Node3 Node4 ...) 
 
     echo from $node to $other 
 
     ssh $node ssh $other hostname

関連する問題