ubuntu14.04+ifortの環境に、MPICH3をインストール(後編)

前編で、MPICH3をインストールしてパスを通したので、その後の設定です。並列化する計算機全てにMPICH3をインストールし、パスを通しておきます。
複数の計算機でプログラムを並列実行する場合の条件として、以下の2つがあります。

1.それぞれの計算機で同じディレクトリ構成の同じ場所に、同じ実行ファイルを用意する
2.互いの計算機に、パスワード無しでログインできる

1に関しては、NFSで解決済みです。
2に関しては、別に記事(ここ)を書きますが、以下のようなコマンドが実行できれば、OKと思います。計算機をそれぞれ「calc1」、「calc2」としたとき、calc1から

@calc1:~$ ssh calc2 hostname 
calc2

calc2から、

@calc2:~$ ssh calc1 hostname 
calc1

以上のように、それぞれのマシン名が互いに表示されればOKです。
このような状態で、MPICH2では、mpdというデーモンを動かす必要があったようですが、MPICH3では不要です。mpdの代わりに、「hydra」というマネージャプログラムが勝手に使われるようです。並列計算を実行するには、まず計算機のノード情報を記載したファイルを用意します。ファイル名は適当で構いません。ここでは~/machinefileとして、中身を以下のように記載します。

calc1:8
calc2:8

それぞれ、「ノード名:最大コア数」となります。(たぶんです。ハイパースレッティングとか、よくわからん。ご自分の環境で色々試してください。)
あとは、実行ファイル(ここでは、a.out)を用意して実行するだけです。

$ mpiexec -n 16 -f ~/machinefile ./a.out

ここでは、16並列で、先ほど作成した~/machinefile内のノードに割り振って計算します。
もしも実行ファイルが無い場合、コマンドでもOKです。たとえば、

$ mpiexec -n 16 -f ~/machinefile hostname
calc1
calc1
calc1
calc1
calc1
calc1
calc1
calc1
calc2
calc2
calc2
calc2
calc2
calc2
calc2
calc2

などです。各計算機で実行されていることがわかります。ここまでできれば、とりあえず終了です。
以下のサイトを参考にしました。ありがとうございました。
http://www.softek.co.jp/SPG/Pgi/TIPS/public/general/mpich2_use.html
http://pccluster.web.fc2.com/MPI.html