[[Torque]]
**Torqueとは [#w403e39f]
Torqueは、Job Schedulerである。Job Schedulerは、クラスターに次々と投入されるジョブを、キューなどを用い、スケジューリングを行って管理してくれる。~
クラスターを利用して、実験を行う際には、Job Schedulerを用いる必要がある。~
それは、他のクラスターユーザーが存在する場合に、同時に別スレッドで処理を実行してしまうならば、CPUなどのリソースを取り合うことになるため、台数効果などの実験結果が正確に得られないからである。~
それでは、Torqueの使い方を見てみよう。
*Torqueの設定 [#w403e39f]
以下のチュートリアルに進む前にTorqueの設定方法について学び、設定する必要がある。~
マシンの準備は[[kvm]]を参考に差分ディスク管理で作成するといいかも。
**インストール [#w403e39f]
ソースからインストールする方法を紹介する。(yum等でもインストールすることは可能だけれど)。 ~
まずはダウンロード(公式 http://www.adaptivecomputing.com/ を参考に最新版を取得すること!)
 # wget http://adaptive.wpengine.com/resources/downloads/torque/torque-4.2.0.tar.gz
解凍
 # tar zxvf torque-4.2.0.tar.gz
インストール
 # cd torque-4.2.0
 # ./configure --prefix=<インストール先> --with-default-server=<管理サーバ> --with-server-home=<設定ファイルの保存先>
 # make && make install
- torqueはデフォルトではscpを用いるが、rcpを用いたい時には configureを実行する時点で --with-rcpオプションを指定し、=<rcpの場所>としなければならない。
**ポートの設定 [#w403e39f]
Torqueが使用するポートについて/etc/servicesに記述する。以下に記述例を示す。
 pbs             15001/tcp               # pbs_server
 pbs_mom         15002/tcp               # mom to/from server
 pbs_resmom      15003/tcp               # mom resource management requests
 pbs_resmom      15003/udp               # mom resource management requests
 pbs_sched       15004/tcp               # scheduler

ここまで完了したら一度以下のコマンドを実行してデータベースの初期化を行う。実行するとpbs_serverがデーモンプロセスとして実行され、qmgrを実行することで設定が行えるようになる。
 # <インストールした場所>/sbin/pbs_server -t create
qmgrを実行すると以下のような表示がでる。
 # <インストールした場所>/bin/qmgr
 Max open servers: 4
 Qmgr:

**スケジューラの設定(サーバー側) [#w403e39f]
スケジューラの設定は$Torque/sched_priv/sched_configで行える。デフォルトではFIFOスケージューら。
**設定の反映(サーバー側) [#w403e39f]
サーバーとスケジューラの設定を反映させるために一度pbs_serverを停止させなければならない。
 # killall pbs_server
**ノードファイルの作成(サーバー側) [#w403e39f] 
$Torque/sched_priv/nodes を編集する。以下に例を示す。
 nodeA np=1
 nodeB np=1
 nodeC np=1

user側からはpbsnodesで見ることができる。

**計算ノード用のconfigファイル作成(計算ノード側) [#w403e39f] 
$Torque/mom_priv/config を編集。編集例を以下に示す。
 logevent 0x1ff
 max_load 1.2 
 ideal_load 1.0
 clienthost <管理サーバー>
- logevent 
-- ログレベルの指定。この場合デバッグレベル。
- max_load
--使用できるCPU資源の限界。この値を超えない。
- ideal_load
--使用するCPU資源の最適値。cpu数に合わせると良い。
- clienthost
-- 管理サーバーの指定を行う。

**起動スクリプトの作成 [#w403e39f]
以下のようなスクリプトを作り、/etc/rc.d/init.d以下に保存する。
 #!/bin/sh
 #
 # pbs          This script will start and stop the PBS daemons
 #
 # chkconfig: 345 85 85
 # description: PBS is a batch versitle batch system for SMPs and clusters
 #
 # Source the library functions
 . /etc/rc.d/init.d/functions
 PBS_HOME=/var/spool/torque
 
 # let see how we were called
 case "$1" in
 start)
        echo "Starting PBS daemons: "
        if [ -x /usr/local/torque/sbin/pbs_mom ] ; then
        if [ -f $PBS_HOME/mom_priv/config ] ; then
        echo -n "Starting pbs_mom: "
        daemon /usr/local/torque/sbin/pbs_mom
        echo
 fi
 fi
        if [ -x /usr/local/torque/sbin/pbs_sched ] ; then
        if [ -d $PBS_HOME/sched_priv ] ; then
        echo -n "Starging pbs_sched: "
        daemon /usr/local/torque/sbin/pbs_sched
        echo
 fi
 fi
        if [ -x /usr/local/torque/sbin/pbs_server ] ; then
        if [ -d $PBS_HOME/server_priv ] ; then
        echo -n "Starting pbs_server: "
        daemon /usr/local/torque/sbin/pbs_server -a true
        echo
 fi
 fi
 ;;
 stop)
        echo "Shutting down PBS: "
        if [ -x /usr/local/torque/sbin/pbs_server ] ; then
        if [ -d $PBS_HOME/server_priv ] ; then
        echo -n "Stopping pbs_server: "
        killproc pbs_server
        echo
 fi
 fi
        if [ -x /usr/local/torque/sbin/pbs_sched ] ; then
        if [ -d $PBS_HOME/sched_priv ] ; then
        echo -n "Stopping pbs_sched: "
        killproc pbs_sched
        echo
 fi
 fi
        if [ -x /usr/local/torque/sbin/pbs_mom ] ; then
        if [ -f $PBS_HOME/mom_priv/config ] ; then
        echo -n "Stopping pbs_mom: "
        killproc pbs_mom
        echo
 fi
 fi
 ;;
 status)
        status pbs_server
        status pbs_mom
        status pbs_sched
 ;;
 restart)
        echo "Restarting PBS"
        $0 stop
        $0 start
        echo "done."
 ;;
 *)
        echo "Usage: pbs {start|stop|restart|status}"
        exit 1
 esac

このように、"ノード名 np=<ノードのcpu数>と記述する。
**実行[#w403e39f]
先ほど作成したスクリプトから実行する。
 # /etc/rc.d/init.d/torque start
**パスを通す [#jaada8ee]
.zshrcなどに以下のように記述する。
 PATH=<インストールした場所>/bin:$PATH


**エラーについて [#w403e39f]
***Head側からnodeが見えてないエラー [#h4542ce3]
/var/spool/torque/mom_logs にエラーの詳細が記される。(例えば以下のような)
 02/11/2013 20:29:24;0002; &#160; pbs_mom;Svr;pbs_mom;Torque Mom Version = 2.5.5, loglevel = 0
 02/11/2013 20:29:24;0001; &#160; pbs_mom;Svr;pbs_mom;LOG_ERROR::Operation not permitted (1) in chk_file_sec, Security violation with "config" - config is not owned by admin user
 02/11/2013 20:29:24;0002; &#160; pbs_mom;Svr;read_config;ALERT: &#160;cannot open config file - permissions
 02/11/2013 20:29:24;0002; &#160; pbs_mom;Svr;setpbsserver;mass00.cr.ie.u-ryukyu.ac.jp
このなかの
 LOG_ERROR::Operation not permitted (1) in chk_file_sec, Security violation with "config" - config is not owned by admin user
がエラーを示す一文となっており、configファイルの所有者にadmin権限が無いことが原因となっていることがわかる。(このときはrootにしておかなければならないものをmassとしていた。)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS