Torqueとは †Torqueは、Job Schedulerである。Job Schedulerは、クラスターに次々と投入されるジョブを、キューなどを用い、スケジューリングを行って管理してくれる。 Torqueの設定 †以下のチュートリアルに進む前にTorqueの設定方法について学び、設定する必要がある。 インストール †ソースからインストールする方法を紹介する。(yum等でもインストールすることは可能だけれど)。 # 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が使用するポートについて/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: スケジューラの設定(サーバー側) †スケジューラの設定は$Torque/sched_priv/sched_configで行える。デフォルトではFIFOスケージューら。 設定の反映(サーバー側) †サーバーとスケジューラの設定を反映させるために一度pbs_serverを停止させなければならない。 # killall pbs_server ノードファイルの作成(サーバー側) †$Torque/sched_priv/nodes を編集する。以下に例を示す。 nodeA np=1 nodeB np=1 nodeC np=1 user側からはpbsnodesで見ることができる。 計算ノード用のconfigファイル作成(計算ノード側) †$Torque/mom_priv/config を編集。編集例を以下に示す。 logevent 0x1ff max_load 1.2 ideal_load 1.0 clienthost <管理サーバー>
起動スクリプトの作成 †以下のようなスクリプトを作り、/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数>と記述する。 実行 †先ほど作成したスクリプトから実行する。 # /etc/rc.d/init.d/torque start パスを通す †.zshrcなどに以下のように記述する。 PATH=<インストールした場所>/bin:$PATH エラーについて †Head側からnodeが見えてないエラー †/var/spool/torque/mom_logs にエラーの詳細が記される。(例えば以下のような) 02/11/2013 20:29:24;0002;   pbs_mom;Svr;pbs_mom;Torque Mom Version = 2.5.5, loglevel = 0 02/11/2013 20:29:24;0001;   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;   pbs_mom;Svr;read_config;ALERT:  cannot open config file - permissions 02/11/2013 20:29:24;0002;   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としていた。) |