Mercurial > hg > Document > Growi
view software/Torque/install.md @ 97:edf8ac727c05
backup 2021-10-20
author | autobackup |
---|---|
date | Wed, 20 Oct 2021 00:10:04 +0900 |
parents | b6c284fd5ae4 |
children |
line wrap: on
line source
## Torqueとは Torqueは、Job Schedulerである。Job Schedulerは、クラスターに次々と投入されるジョブを、キューなどを用い、スケジューリングを行って管理してくれる。 クラスターを利用して、実験を行う際には、Job Schedulerを用いる必要がある。 それは、他のクラスターユーザーが存在する場合に、同時に別スレッドで処理を実行してしまうならば、CPUなどのリソースを取り合うことになるため、台数効果などの実験結果が正確に得られないからである。 それでは、Torqueの使い方を見てみよう。 # Torqueの設定 以下のチュートリアルに進む前にTorqueの設定方法について学び、設定する必要がある。 マシンの準備は[[kvm]]を参考に差分ディスク管理で作成するといいかも。 ## インストール ソースからインストールする方法を紹介する。(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の場所>`としなければならない。 ## ポートの設定 ``` 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 <管理サーバー> - logevent - ログレベルの指定。この場合デバッグレベル。 - max_load - 使用できるCPU資源の限界。この値を超えない。 - ideal_load - 使用するCPU資源の最適値。cpu数に合わせると良い。 - clienthost - 管理サーバーの指定を行う。 ## 起動スクリプトの作成 以下のようなスクリプトを作り、/etc/rc.d/init.d以下に保存する。 ```sh #!/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としていた。)