パスワードを忘れた? アカウント作成
420568 journal

t-nissieの日記: Linuxクラスタにmpich2-1.0.tar.gzをインストール

日記 by t-nissie
MPICHとはMPIの1インプリメンテーションで, 2004年末にMPI-2.0
のAPIをすべて取り込んだversion 1.0がリリースされた. MPICH2
home page より mpich2-1.0.tar.gz を入手し, IntelのFortran
コンパイラifortを持つLinuxクラスタにインストールする.
MPD process manager を daemon としてサーバおよびクライアントで
走らせることにより, ユーザーが誰でも特別な手続きなしに
MPI並列化プログラムを実行できるようにする.

手順:
$ which python
/usr/bin/python
$
と/usr/bin/pythonがインストールされていることを確認する. もしなければ,
  * パッケージをインストールする.
  * /usr/local/bin/python があれば /usr/bin/python へリンクを張る.
  * Python-2.4.tar.gz を --prefix=/usr でインストールする.
などで/usr/bin/pythonをインストールする(OS起動時にPATHが
通っているところにpythonをインストールしておく必要がある).

mpich2-1.0.tar.gz を
$ CC=gcc F77=ifort F90=ifort ./configure --prefix=/opt/mpich2-1.0
でインストールする(たぶんこれでよかったと思う.).
# cd /opt ; ln -s mpich2-1.0 mpich2
とする(MPIの他の実装(例えばlam-mpi)もインストールするかも
しれないので/usr/local などにはインストールしないほうがよい).

サーバおよびクライアントともに/etc/mpd.confという
secretword=<secretword>
と1行書かかれただけのファイルを作る.
/etc/rc.d/rc.local で mpd を, サーバでは
# /opt/mpich2/bin/mpd --daemon --listenport=12345
と起動, クライアントでは
# /opt/mpich2/bin/mpd --daemon --host=<server hostname> --port=12345
と起動するようにしておく.

ユーザーは /opt/mpich2/bin にPATHを通しておく。
/etc/profile や /etc/csh.cshrc などで設定してしまうのも一案.

ひとつ問題があって, 環境変数LD_LIBRARY_PATHがMPI並列化プログラムの
実行時に設定されない. この環境変数が/opt/intel_fc_80/libに
なっていないとIntelのDLLの読み込みができない. mpdrunはなぜか
この環境変数だけは引き継いでくれないし, デーモンの起動時に
設定しておいてもダメ. とりあえず,
$ mpdrun -n 2 /usr/bin/env LD_LIBRARY_PATH=/opt/intel_fc_80/lib ./mpijob < stdin.input.file
などと実行するか, static link した実行形式を用いれば回避できる.
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

物事のやり方は一つではない -- Perlな人

読み込み中...