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 した実行形式を用いれば回避できる.
の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 した実行形式を用いれば回避できる.
Linuxクラスタにmpich2-1.0.tar.gzをインストール More ログイン