MPICHのコンパイルとインストール
例として,LinuxをOS とする3台のPC (以下ホストと呼びます。ここではデュアルプロセッサマシンとしていますが,もちろんシングルでもよいです) を想定し,それらがネットワークで結ばれており,NFSが動いているものとします。ここではそれらホストのホスト名をserver01,server02,server03とします。ホストはUNIX系OSが載っているマシンならばまず問題ありません。1台以上何台でも良く,1台の場合,NFSはもちろん要りません。
MPICHでは各ホストのコマンドの実行にrshを使っており(オプションによりsshを使うことも可能),MPICHのコンパイルの前にrshが動くかどうかを,たとえば
$ rsh ホスト名 ls
などとして確かめます。もしこのコマンドがなかったり,あっても所要の結果が得られないときには,マニュアルを参照するなどしてrshのインストールあるいは設定を行なう必要があります。
(1) MPICH の入手
ANLのMPIのページ http://www-unix.mcs.anl.gov/mpi/mpich/ から,
mpich.tar.gz
がドキュメントとともに入手できます。
(2) MPICH のコンパイル
(a) 展開
適当な場所に,mpich.tar.gzを展開する作業用ディレクトリを作り,ここにmpich.tar.gzを置きます。(Linuxでは)次のように展開します。
$ tar zxvf mpich.tar.gz
これにより,ディレクトリmpich-1.2.x ができるので,この中に移動します。
$ cd mpich-1.2.x
(b) configure
mpich-1.2.x のインストールディレクトリを決めて,configureを行います。configureは(a)で展開されたスクリプトです。ここでは
/usr/local/mpich-1.2.x
にインストールするものとし,
$ ./configure --prefix=/usr/local/mpich-1.2.x
と実行します。結果を作業用ディレクトリの中だけに置いておくことも可能で,この場合は --prefix以下は不要です。configureのヘルプは
$ ./configure --help
で見られます。
(c) make
configureにより Makefile が生成されているので,make します。
$ make
(d) make install
インストール先を指定したので,rootで,
# make install
を行ないます。これで先ほど指定したように /usr/local/ の下にディレクトリmpich-1.2.x が作られ,必要なファイルがコピーされています。
(e) マシンファイルの設定
実行用のmpirunが読む,ホスト名一覧のファイルが
/usr/local/mpich-1.2.x/share/machines.LINUX
です。ここには,デフォルトで,server01が次のように5つ並んでいます。
# Change this file to contain the machines that you want to use
# to run MPI jobs on. The format is one host name per line, with either
# hostname
# or
# hostname:n
# where n is the number of processors in an SMP. The hostname should
# be the same as the result from the command "hostname"
server01
server01
server01
server01
server01
これを自分の環境に合わせて修正します。ここではserver02,server03を追加します。
# コメント行省略
server01:2
server02:2
server03:2
このマシンファイルはmpirunがデフォルトで読む。例えばmpiccでコンパイルされたプログラムxxxxの実行は
$ mpirun -np 3 xxxx
としますが,このときに上の
/usr/local/mpich-1.2.x/share/machines.LINUX
が読まれます。マシンファイルmachinfilenameを明示的に指定することもできます。
$ mpirun -np 3 -machinefile machinfilename xxxx
注意. machines.LINUXのコメントにもあるように,":n" のnはSMPマシンの共有メモリによる通信を用いる場合に,そのCPU数です。これに対して,TCPを用いることも可能で,この場合には
# コメント行省略
server01
server02
server03
server01
server02
server03
と書きます。この順序はホストの参照の順番を与えていることになります。
(f) パスの設定
最後に,パスを通します。例えば
.bash_profile
のPATHに,例えば/usr/local/mpich-1.2.x/binを追加します。
PATH=$PATH:/usr/local/mpich-1.2.x/bin
以上でMPICHのインストールが完了しました。