TORQUE + MPICH2インストール

by Jun ARAI 2007.05


※インストールはrootで行うものとする.サーバ名はmpiclub_masterとした.

TORQUE

  1. TORQUEのインストール

    1. 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ディレクトリ以下に展開される

    2. /opt/torque-2.1.8./configureを実行

    3. makeコマンドを入力し,プログラムをBuild

    4. make installでインストール完了

      • /var/spool/torque/以下に設定ファイル

      • /usr/local/sbin/以下にサーバー制御コマンド

        • pbs_server: サーバーdaemonの起動

        • pbs_mom: 計算ノードdaemonの起動

        • pbs_sched: デフォルトのスケジューリングdaemonの起動

      • /usr/local/bin/以下にジョブ制御コマンド

        • qstat: ジョブの状態を表示

        • qsub: ジョブ投入コマンド

  2. 設定ファイルの編集/var/spool/torqueディレクトリ

    1. server_priv/nodesファイル (サーバー機のみ)

      • 計算ノードを列挙する

        • 形式は1ノード1行で,[ノード名] np=[プロセッサ数]など

        • IPアドレスを直接指定するとエラーになるので,/etc/hostsファイルなどで適宜IPアドレスとサーバー名の対応付けをすること.

    2. mom_priv/configファイル (全計算ノード)

      • ノードごと全てに配置する.最低限以下の二項目を設定

        • $pbsserver [サーバー名]

        • $logevent 255

  3. サーバー,計算ノードの起動

    1. サーバー: /usr/local/sbin/pbs_server (サーバー機のみ)※初回起動時のみ -t createオプションを付けて初期化する必要がある.

    2. スケジューラ: /usr/local/sbin/pbs_sched (サーバー機のみ)

    3. 計算ノード: /usr/local/sbin/pbs_mom (全計算ノード)

  4. キューの作成 (ここではキュー名はdefault_queとする)

    1. 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

  5. サーバの設定

    1. qmgrコマンドを実行し,以下を入力

      • set server scheduling = True

      • set server default_queue = default_que

  6. 設定の確認

    1. qmgrコマンドを実行し,print serverを入力.前項が設定されているか確認しておく.

    1. pbsnodes -aコマンドを実行し,全ての計算ノードが表示され,それぞれstate = freeとなっていることを確認する.

    1. 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


testjob.shを同じディレクトリに置き,qsub job.shと入力しジョブを投入する.

無事に実行されると,testjob.o1などのアウトプットファイルが出力される.


MPICH2

  1. MPICH2のインストール

    1. 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以下に展開される

    2. mkdir /opt/mpich2-installでインストールディレクトリを作成

    3. /opt/mpich2-1.0.5p4で,./configure -prefix=/opt/mpich2-install | tee configure.logを実行

    4. make | tee make.logbuild

    5. make install | tee install.logでインストール

      • /opt/mpich2-install/bin/以下にコマンドが置かれる

        • mpd: デーモンの起動

        • mpicc: MPI版のCコンパイラ

        • mpiexec: MPIプログラムの実行コマンド

        • mpirun: mpiexecと同様

  2. 設定

    1. 環境変数PATH/opt/mpich2-install/binを追加

      • export PATH=/opt/mpich2-install/bin:$PATHを実行

      • 適宜/etc/bashrcなどに上記を追加し,起動時に追加されるようにしておくこと

    2. .mpd.confファイル(ユーザーごとに設定する)

      • ホームディレクトリ以下に.mpd.confファイルを作成し,以下を記述

      • secretword=[secretword]

      • パスワードだが,ログインパスワードと同じにしないように注意する.

      • .mpd.confファイルのパーミッションを変更.chmod 600 .mpd.conf

    3. テスト

      • root以外のユーザになること.ホームディレクトリに.mpd.confファイルを必ず置いておく.

      • mpd &を入力し,デーモンを立ち上げる.

      • mpdtraceを入力し,デーモンが立ち上がっているかを確認.

  1. localhost.localdomainIPに関して

      • Fedora Core 6において/etc/hostsファイルに以下の記述が無いとmpdの名前解決でエラーとなった.

      • 127.0.0.1 localhost.localdomain localhost mpiclub_master


TORQUE上でのMPICH2の利用


 これ以降,mpdを立ち上げることなく,TORQUEのジョブからmpiexec -np 4 cpiなどで

MPIプログラムが実行可能となる.ただし,コマンドから実行する場合は,mpd &を実行してから

先に変更したmpiexec_originalコマンドでMPIプログラムを実行する必要がある.

また,実行終了後にはmpdallexitによりmpdを終了させること.なお,コマンドラインから

MPIプログラムを実行するのはデバッグやテスト時のみとし,基本的にTORQUEによる

ジョブ管理システムを利用することとする.