TORQUE + MPICH2インストール
by Jun ARAI 2007.05
※インストールはrootで行うものとする.サーバ名はmpiclub_masterとした.
TORQUE
TORQUEのインストール
http://www.clusterresources.com/ からソースコードを入手し,展開.
wget http://www.clusterresources.com/downloads/torque/torque-2.1.8.tar.gz
/optディレクトリにtorque-2.1.8.tar.gzを配置
tar zxfv torque-2.1.8.tar.gzと入力し,解凍
/opt/torque-2.1.8ディレクトリ以下に展開される
/opt/torque-2.1.8で./configureを実行
makeコマンドを入力し,プログラムをBuild
make installでインストール完了
/var/spool/torque/以下に設定ファイル
/usr/local/sbin/以下にサーバー制御コマンド
pbs_server: サーバーdaemonの起動
pbs_mom: 計算ノードdaemonの起動
pbs_sched: デフォルトのスケジューリングdaemonの起動
/usr/local/bin/以下にジョブ制御コマンド
qstat: ジョブの状態を表示
qsub: ジョブ投入コマンド
設定ファイルの編集/var/spool/torqueディレクトリ
server_priv/nodesファイル (サーバー機のみ)
計算ノードを列挙する
形式は1ノード1行で,[ノード名] np=[プロセッサ数]など
IPアドレスを直接指定するとエラーになるので,/etc/hostsファイルなどで適宜IPアドレスとサーバー名の対応付けをすること.
mom_priv/configファイル (全計算ノード)
ノードごと全てに配置する.最低限以下の二項目を設定
$pbsserver [サーバー名]
$logevent 255
サーバー,計算ノードの起動
サーバー: /usr/local/sbin/pbs_server (サーバー機のみ)※初回起動時のみ -t createオプションを付けて初期化する必要がある.
スケジューラ: /usr/local/sbin/pbs_sched (サーバー機のみ)
計算ノード: /usr/local/sbin/pbs_mom (全計算ノード)
キューの作成 (ここではキュー名はdefault_queとする)
qmgrコマンドを実行し,以下を入力
create queue default_que
set queue default_que queue_type = Execution
set queue default_que max_running = 2
set queue default_que resources_max.nodect = 1
set queue default_que resources_min.nodect = 1
set queue default_que max_user_run = 1
set queue default_que enabled = True
set queue default_que started = True
サーバの設定
qmgrコマンドを実行し,以下を入力
set server scheduling = True
set server default_queue = default_que
設定の確認
qmgrコマンドを実行し,print serverを入力.前項が設定されているか確認しておく.
pbsnodes -aコマンドを実行し,全ての計算ノードが表示され,それぞれstate = freeとなっていることを確認する.
qstat -Qコマンドを実行.以下のような表示が出ればOK.
TORQUEでのジョブの実行
※root以外のユーザになること.rootでのジョブは実行されないらしい.
実行したいファイルを用意する.例えばtestとしておく.
job.shなどの名前で,以下のスクリプトファイルを用意する.設定内容などはマニュアルを参照.
#!/bin/sh
#PBS -N testjob
#PBS -j oe
#PBS -l nodes=1:ppn=1
#PBS -q default_que
cd $PBS_O_WORKDIR
./test
test,job.shを同じディレクトリに置き,qsub job.shと入力しジョブを投入する.
無事に実行されると,testjob.o1などのアウトプットファイルが出力される.
MPICH2
MPICH2のインストール
http://www-unix.mcs.anl.gov/mpi/mpich/ からソースコードを入手しインストール
wget ftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5p4.tar.gz
/optディレクトリにmpich2-1.0.5p4.tar.gzを配置
tar zxfv mpich2-1.0.5p4.tar.gzで解凍
/opt/mpich2-1.0.5p4以下に展開される
mkdir /opt/mpich2-installでインストールディレクトリを作成
/opt/mpich2-1.0.5p4で,./configure -prefix=/opt/mpich2-install | tee configure.logを実行
make | tee make.logでbuild
make install | tee install.logでインストール
/opt/mpich2-install/bin/以下にコマンドが置かれる
mpd: デーモンの起動
mpicc: MPI版のCコンパイラ
mpiexec: MPIプログラムの実行コマンド
mpirun: mpiexecと同様
設定
環境変数PATHに/opt/mpich2-install/binを追加
export PATH=/opt/mpich2-install/bin:$PATHを実行
適宜/etc/bashrcなどに上記を追加し,起動時に追加されるようにしておくこと
.mpd.confファイル(ユーザーごとに設定する)
ホームディレクトリ以下に.mpd.confファイルを作成し,以下を記述
secretword=[secretword]
パスワードだが,ログインパスワードと同じにしないように注意する.
.mpd.confファイルのパーミッションを変更.chmod 600 .mpd.conf
テスト
root以外のユーザになること.ホームディレクトリに.mpd.confファイルを必ず置いておく.
mpd &を入力し,デーモンを立ち上げる.
mpdtraceを入力し,デーモンが立ち上がっているかを確認.
mpiexec -np 4 cpiなどMPIプログラムを実行してみる.
mpdallexitでデーモンを終了.
localhost.localdomainのIPに関して
Fedora Core 6において/etc/hostsファイルに以下の記述が無いとmpdの名前解決でエラーとなった.
127.0.0.1 localhost.localdomain localhost mpiclub_master
TORQUE上でのMPICH2の利用
TORQUE上でMPICH2を使用する場合は,別途mpiexecを用意するとよい.
mpdを立ち上げる必要が無くなり,TORQUE上でリソース管理が行いやすい.
mpiexecはhttp://www.osc.edu/~pw/mpiexec/index.php から入手可能.
./configure –with-default-comm=mpich2-pmiとし,MPICH2を使うことを必ず指定すること.
makeを実行しbuildする.make installでインストールを行う.
/opt/mpich2-install/bin/mpiexecを適当にリネームする.例えば
mv /opt/mpich2-install/bin/mpiexec /opt/mpich2-install/bin/mpiexec_original
mpiexecは/usr/local/binにインストールされるので,シンボリックリンクを張っておく.
ln -s /usr/local/bin/mpiexec /opt/mpich2-install/bin/mpiexec
これ以降,mpdを立ち上げることなく,TORQUEのジョブからmpiexec -np 4 cpiなどで
MPIプログラムが実行可能となる.ただし,コマンドから実行する場合は,mpd &を実行してから
先に変更したmpiexec_originalコマンドでMPIプログラムを実行する必要がある.
また,実行終了後にはmpdallexitによりmpdを終了させること.なお,コマンドラインから
MPIプログラムを実行するのはデバッグやテスト時のみとし,基本的にTORQUEによる
ジョブ管理システムを利用することとする.