OpenMPI で rsh を使って複数のマシンで実行

久しぶりに書く。

ssh で繋いでもいいけど、パスワード打つのが面倒なので。

rsh の使い方

$(HOME)/.rhosts にマシン名と実行するユーザ名を書く

machine1 krustf
machine2 krustf

これで、 rsh を使って hostname コマンドが実行されれば OK.

$ ssh machine2 -l krustf
$ rsh machine1 -l krustf "hostname"
machine1

OpenMPI で rsh

rsh を使うようにフラグを立てればよい。

後、どうもインストール先によっては必要な実行ファイルを mpirun が認識できないようなので、OpenMPI のインストール先ディレクトリ(configure で --prefix に渡した値)も指定する。

mpirun -prefix /usr/local \
 --mca plm_rsh_agent rsh \
 --mca btl <ここに任意の接続設定 TCP/IB> \
 -np <ランク数> -hostfile <使用するマシン名が記載されたファイル> a.out

上記で指定した -prefix /usr/local で OpenMPI のインストール先を指定する。

rsh 接続が connection refused した場合、rsh-server が実行されていなかったりするので、確認すること。

そのうちやる

MVAPICH2 for Infiniband and GPU-GPU communication で遊ぶ。