2011-08-21 23 views
3

私が使用しているクラスタには、Linuxのディストリビューション/バージョンの違い、32ビット、64ビット、GCCの異なるバージョンなど、いくつかのホストタイプがあります。 GCC用のプラットフォーム固有のMPIラッパーを使用してプログラムをコンパイルする必要があることはわかっています。このステップは、私には多かれ少なかれ明確です。OpenMPIプログラムをコンパイルして実行する

私のプログラムは固定数のホストを使用し、各ホストは正確に1つのプロセスを実行します。共有メモリスレッドはTBBによって処理されるので、基本的にはホスト間の作業分散のためだけにMPIが必要です。

最後のステップは、すべてのホストでプログラムを実行することです。それは私がやる方法がわからない部分であり、私のIT関係者は私を助けなかったことが判明しました。

私はホストIPアドレス(192.168.1.xxxのような正確なローカルアドレス)と各ホストのユーザー名とパスワードのリストを持っています。プラットフォーム固有のコンパイラを備えたコンパイラで各ホストにコピーされていれば、すべてのホストで自分のプログラムを実行するステップは何ですか?どんな助けもありがたい。

答えて

3

すべてのマシン、ホストファイル、すべてのマシン上の実行可能ファイルに対して、パスワードなしのSSHアクセスが必要です。 実行ファイルがすべてのマシンで同じ(相対)パスを持つことを確認してください。

HOSTFILE(マスタマシン上):オープンMPI用

# my_hostfile 
192.168.0.205 
192.168.0.208 

コマンド:パスワードなしのSSHアクセスの場合

mpirun --hostfile my_hostfile programname 

~/.ssh

ssh-keygen -t rsa 

下MASTERKEYを作成(追加1行)内容をマスターマシンから新しい行に~/.ssh/rsa.pubターゲットマシンの~/.ssh/authorized_keys2にあります。 (RSAの代わりに別のSSH暗号システムを使うことができます)

+0

私はmpiを使ったことがありませんでしたが、ホスト上で何か起動する必要はありませんか? –

+0

@Martin:いいえ、これは 'mpirun'によって行われます。どのように私に尋ねないでください。 –

+0

明日の朝、地元のクラスターで試してみるつもりです。 ;-) –

関連する問題