mpich2設定


「mpich2」のインストール及び設定を行います。

(1)「mpich2」(ver 1.21p1)をダウンロードする。
[root@kanri ~]# wget http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich2-1.2.1p1.tar.gz

)最新版は、http://www.mcs.anl.gov/research/projects/mpich2/で確認して下さい。

(2)「mpich2」のダウンロード後、解凍する。
[root@kanri ~]# tar zxvf mpich2-1.2.1p1.tar.gz
 
(3)管理サーバに「mpich2」をインストールする。
[root@kanri ~]# cd mpich2-1.2.1p1
[root@kanri mpich2-1.2.1p1]# ./configure --prefix=/usr/local/mpich/
[root@kanri mpich2-1.2.1p1]# make && make install

(4)管理サーバに「mpich2」の実行ファイルまでパスを通す。
ここでは、「mpi」ユーザを例にする。
[mpi@kanri ~]$ vi .bashrc
#----以下を追加----
PATH=/usr/local/mpich/bin:$PATH
[mpi@kanri ~]$ source .bashrc

いちいちユーザを作成する度に、ユーザ毎の「.bashrc」を編集するのが面倒な場合は以下のような設定方法もあります。
「/etc/profile」に赤い網掛け部分を追加してください。
[root@kanri ~]# vi /etc/profile
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

if [ -x /usr/bin/id ]; then
        USER="`id -un`"
        LOGNAME=$USER
        MAIL="/var/spool/mail/$USER"
        pathmunge /usr/local/mpich/bin
fi

上記設定で、新規にユーザを作成しても自動的にパスが通っています。 

(5)「mpich2」の設定を行う
[mpi@kanri ~]$ vi .mpd.conf
secretword=passwd
[mpi@kanri ~]$ chmod 600 .mpd.conf

secretwordの部分はパスワードです。任意のパスワードを設定してください。

(6)計算に使用するノードファイルを作成する。(ここでは管理サーバも計算ノードに入れている)
[mpi@kanri ~]$ vi mpd.hosts
kanri
node1
node2

(7)全マシンの「/etc/hosts」を以下のように修正する。(以下はkanriの例)
[root@kanri ~]# vi /etc/hosts
#127.0.0.1 localhost.localdomain localhost kanri.local
::1             localhost6.localdomain6 localhost6
192.168.0.15    kanri.local     kanri   localhost       localhost.localdomain
192.168.0.16    node1.local     node1
192.168.0.17    node2.local     node2

このように、「127.0.0.1 localhost」の部分をコメントアウトする。
# 「node1」の場合は、5行目の後ろに「localhost localhost.localdomain」を追記する。「node2」の場合は6行目に追加する。
コメントアウトしない場合は、「mpich2」起動時に以下のようなエラーが発生する。
※下記のエラーが発生しない場合は上記コメントアウトはしなくても大丈夫です。(2010/11/20追記)
mpdboot_kanri.local (handle_mpd_output 406): failed to handshake with mpd on kanri; recvd output={}

また、ハイライトした行の不足部分を追加する。これは、「JMS」をインストールする際に必要な設定です。 

(8)「mpich2」を起動する。
[mpi@kanri ~]$ mpdboot -r rsh -n 3 -f mpd.hosts

-rオプション:ここでは、「rsh」で通信するため上記のオプションを付け加えています。付け加えない場合は、「ssh」で通信します。
-nオプション:ノード数を指定します。今回は、3CPU(3ノード)使うので3を指定しています。
-fオプション:計算に使用するノードファイルを指定します。

(9)無事にMPDデーモンが動作しているか確かめる。
[mpi@kanri ~]$ mpdtrace
kanri
node2
node1

このように計算に使用するノードが表示されれば無事に動作している。 

(10)動作テストを行う。
動作テストプログラムには、有名な「姫野ベンチ」を使用します。

ベンチマークは以下のURLからダウンロードできます。
http://accc.riken.jp/HPC/HimenoBMT/download2.html
)ソースコード(C+MPI,static allocate version)をダウンロードしてください。

ここでは、管理サーバ1台、計算ノード2台(node1、node2)で姫野ベンチを実行します。

ダウンロード後、管理サーバへアップし解凍します。

解凍後、姫野ベンチを実行します。
実行するユーザは「mpi」を例にします。
[mpi@kanri cc_himenoBMTxp_mpi]$ source paramset.sh M 1 1 3
[mpi@kanri cc_himenoBMTxp_mpi]$ mpicc himenoBMTxps.c

コンパイル時に警告が出ますが無視します。

姫野ベンチを実行します。
[mpi@kanri cc_himenoBMTxp_mpi]$ mpiexec -n 3 /home/mpi/cc_himenoBMTxp_mpi/a.out
Sequential version array size
 mimax = 129 mjmax = 129 mkmax = 257
Parallel version array size
 mimax = 129 mjmax = 129 mkmax = 88
imax = 128 jmax = 128 kmax =87
I-decomp = 1 J-decomp = 1 K-decomp =3
 Start rehearsal measurement process.
 Measure the performance in 3 times.

 MFLOPS: 1310.272334 time(s): 0.313916 1.693126e-03

 Now, start the actual measurement process.
 The loop will be excuted in 573 times
 This will take about one minute.
 Wait for a while

cpu : 59.835601 sec.
Loop executed for 573 times
Gosa : 9.495855e-04
MFLOPS measured : 1312.951517
Score based on Pentium III 600MHz : 15.849246

無事に動作していれば設定完了です。

(11)「mpich2」を終了する。
[mpi@kanri ~]$ mpdallexit

Comments are closed.