MPICH2 †
キッチンで分散メモリ環境を作ってしまおうの段
環境 †
インストール †
- yumのレポジトリを探すもMPICH2はみつからず。あきらめて本家サイトからソースを落としてインストール。特にパラメータの指定は行わず。
- /etc/hostsに
127.0.0.1 localhost hostmname
のようなエントリがあるとmpdbootのときに
failed to handshake with otherhosts on mpd
のようなエラーが出る。/etc/hostsの該当箇所をコメントアウトしたら出なくなった。
- NASAのMPIベンチマーク(NPB)をDLして展開。READMEをよむと
NPB_DIR/conf/make.def.sample
を修正せよとのこと。
MPICC=cc
となっていたのを
MPICC=mpicc
に直し、
-L/usr/local/lib -lmpi
となっていたのを
-L/usr/local/lib
に直した。適当です。不適切であれば誰か指摘してほしいです。
- リネーム
mv NPB_DIR/conf/make.def.sample NPB_DIR/conf/make.def
- コンパイル。Cで書かれているのはISというプログラムだけなので、
make is CLASS=B NPROCS=2
てな感じでコンパイル。CLASSは問題の規模、NPROCSは同時に走らせるプロセス数。
- 分散メモリで処理してみる。とりあえず
mpdboot -n 2 -f ~/mpd.hosts
mpiexec -n 2 `pwd`/bin/is.B.2
と叩くと勝手に走り出す。処理中、プロセスが走っているはずの端末にSSHしてtopを見てみると、is.B.2なるプロセスが走っているではないか!成功!
考察 †
- 3台のうち、2台は別室にある。この2台の間で分散処理をさせるとやはり早い。手元にある1台と別室の1台で分散処理をさせると遅い。ネットワークの良し悪しが性能を大きく左右することがわかった。
comment †
#comment_kcaptcha
|