web-dev-qa-db-ja.com

mpirunを使用した複数ホストのパスワードの問題

だから、Ubuntuマシンからリモートホスト(Ubuntuも)にジョブを送信して並列c ++プログラムを実行しています。ターミナルで使用するコマンドラインは次のようなものです。

mpirun -np 4 --Host host1,Host2 program.exe

そして、端末の次の行が両方のホストのパスワードを同時に要求します:

noob@Host1's password: noob@Host2's password:

そして、これはいくつかの問題を引き起こしています。端末にパスワードを1つずつ要求させる方法はありますか?

3
LinuxLearner

端末に順番に確認する方法があるかどうかはわかりませんが、いずれにしても、sshを介して接続していると仮定すると、パスワードなしのアクセスを設定する方がよいでしょう。

  1. マシンに公開sshキーを作成します。

    ssh-keygen -t rsa
    

    パスフレーズの入力を求められます。パスフレーズは、各ログイン後にsshコマンドを実行するfirstの時間を入力するように求められます。これは、複数のsshまたはscpコマンドの場合、入力する必要があるのは1回だけです(ホストごとに1回、ログインセッションごとに1回)。それでも、完全にパスワードなしでアクセスするには、空のままにしておくことができます。

  2. 公開キーを生成したら、それをリモートコンピューターにコピーします。

    ssh-copy-id -i ~/.ssh/id_rsa.pub noob@Host1
    ssh-copy-id -i ~/.ssh/id_rsa.pub noob@Host2
    

    多くのホストでこれを行う必要がある場合は、ホスト名またはIP(1行に1つ)のファイルを作成し、シェルループを使用してそれらをすべてコピーして実行します。

    while read ip; do 
         ssh-copy-id -i ~/.ssh/id_rsa.pub noob@$ip 
    done < IPlistfile.txt
    

この手順では、各IPのパスワードを手動で入力する必要がありますが、一度実行すると、パスワードを要求せずにジョブを起動できるはずです。

それでもうまくいかない場合は、このプログラムがリモートホストに正確に接続する方法に関する詳細が必要になります。

2
terdon

MPICH1を使用している場合、この方法からヘルプを取得できます。

-np 4の後にHost1、Host2と記述する代わりに、この宛先の "machines.linux"ファイルにホストを追加できます。

home/user/mpich1/share

*ホームディレクトリにmpichをインストールしていない場合は、mpichをインストールした場所を参照してください

machines.linux」ファイルを開きます。ファイルの内容をクリアし、必要なコア数のホストの情報を入力します。

Host1:4  
Host2:2
Host3:2

次に、mpirunを単純に使用します。

mpirun -np 4 program.exe
0
Ali Tohidi