[[MenuBar]]

#contents
*TORQUEインストール方法 [#ad1bc577]

TORQUEはデフォルトでyumに入っているため、下記のようにインストールが可能である。~

 [root@naha ~]# yum install torque*
 [root@naha ~]# yum install libtorque-devel.i386

*各種設定 [#b48cf9fa]
TORQUEをインストールしたのち、各種の設定ファイルを少し変更する。~
 [root@naha ~]# emacs -nw /etc/services
まず、/etc/servicesの内容に下記の記述があるかどうかを確認する。~

 pbs         15001/tcp     # pbs server (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     # schedule

上記の記述がない場合、追加する。~


**サーバノード側の設定 [#vd81a8d2]
この設定はサーバノード側で行う設定である。~
ので、計算ノードでは特に必要ないはず。~
初期設定ではノードの設定がなされていないため、server_privの下にnodesというファイルを作成。~
 [root@naha ~]# emacs -nw /var/torque/server_priv/nodes
 cls001.cs.ie.u-ryukyu.ac.jp np=2
 cls002.cs.ie.u-ryukyu.ac.jp np=2
 cls003.cs.ie.u-ryukyu.ac.jp np=2
 cls004.cs.ie.u-ryukyu.ac.jp np=2
 cls005.cs.ie.u-ryukyu.ac.jp np=2
 ....................................................
 cls100.cs.ie.u-ryukyu.ac.jp np=2

ここでノードを書き込む。このノードは計算ノードをさすので、サーバのノードはいらない。np=2とはcpu数が2ということ。Core2なら記述する。~

設定を行ったらpbs_serverとpbs_schedの起動を行う。pbs_serverは初回起動のみ-tオプションでcreateをつける。(このコマンドを行うと設定がリセットされるので注意)~

 [root@naha ~]# pbs_server -t create
 [root@naha ~]# pbs_sched 

サーバ側ではキューを使ってジョブを管理するため、次はqmgrに以下の記述を適当なファイルに格納して、リダイレクトする。今回はserver.confというファイルを作った。~

 #
 # Create and define queue dque
 #
 create queue dque@naha.ie.u-ryukyu.ac.jp
 set queue dque@naha.ie.u-ryukyu.ac.jp queue_type = Execution
 set queue dque@naha.ie.u-ryukyu.ac.jp enabled = True
 set queue dque@naha.ie.u-ryukyu.ac.jp started = True
 #
 # Create and define queue three_hours
 #
 create queue three_hours@naha.ie.u-ryukyu.ac.jp
 set queue three_hours@naha.ie.u-ryukyu.ac.jp queue_type = Execution
 set queue three_hours@naha.ie.u-ryukyu.ac.jp resources_max.cput = 03:00:00
 set queue three_hours@naha.ie.u-ryukyu.ac.jp resources_default.ncpus = 1
 set queue three_hours@naha.ie.u-ryukyu.ac.jp resources_default.nodes = 1
 set queue three_hours@naha.ie.u-ryukyu.ac.jp enabled = True
 set queue three_hours@naha.ie.u-ryukyu.ac.jp started = True
 #
 # Set server attributes.
 #
 set server naha.ie.u-ryukyu.ac.jp scheduling = True


 [root@naha ~]# qmgr < server.conf 

qmgrの設定を見たい場合はqmgr -c 'p s'コマンドを使用する。~

 [root@naha ~]# qmgr -c 'p s'
 #
 # Create queues and set their attributes.
 #
 #
 # Create and define queue dque
 #
 create queue dque
 set queue dque queue_type = Execution
 set queue dque enabled = True
 set queue dque started = True
 #
 # Create and define queue three_hours
 #
 create queue three_hours
 set queue three_hours queue_type = Execution
 set queue three_hours resources_max.cput = 03:00:00
 set queue three_hours resources_default.ncpus = 1
 set queue three_hours resources_default.nodes = 1
 set queue three_hours enabled = True
 set queue three_hours started = True
 #
 # Set server attributes.
 #
 set server scheduling = True
 set server log_events = 511
 set server mail_from = adm
 set server scheduler_iteration = 600
 set server node_check_rate = 150
 set server tcp_timeout = 6
 set server pbs_version = 2.1.10

今回はQueueを2つ作成した。~
普通に使うQueueとしてdqueを、優先度の高い処理をやるQueueにthree_hoursをつくった。~
このqueue毎の優先度は以下のMauiで設定している。詳しくはそこを参照。~


設定が終わったらpbs_srverをkillして再起動する。~
pbs_schedはservice pbs_sched restart でリスタート。~

 [root@naha ~]$ ps aux | grep pbs
 root     21848  0.0  0.2   7132  2316 ?        Ss   16:44   0:00 pbs_server -t  create
 root     21850  0.0  0.0   2352   724 ?        Ss   16:44   0:00 pbs_sched
 root  22225  0.0  0.0   4044   676 pts/0    S+   17:42   0:00 grep pbs
 [root@naha ~]# kill 21848
 [root@naha ~]# service pbs_sched restart
 Shutting down TORQUE Scheduler:                            [  OK  ]
 Starting TORQUE Scheduler:                                 [  OK  ]
 [root@naha ~]# pbs_server
 [root@naha ~]# ps aux | grep pbs
 root     22262  0.0  0.0   2628   772 ?        Ss   17:44   0:00 pbs_server
 root     22264  0.0  0.0   2220   384 ?        Ss   17:44   0:00 pbs_sched
 root     22266  0.0  0.0   4044   676 pts/0    S+   17:44   0:00 grep pbs


**計算ノード側の設定 [#vfea6965]
計算ノードでは/var/torque/mom_priv/にconfigというファイルを作成し、以下をコピペする。~

設定ファイル config~

 [root@cls001 ~]# emacs -nw /var/torque/mom_priv/config
 $logevent 0x1fff
 $max_load 1.2
 $ideal_load 1.0
 $pbsserver naha.ie.u-ryukyu.ac.jp
 $restricted naha.ie.u-ryukyu.ac.jp 

この$pbsserver の値はサーバノードのことなので、今回はnaha.ie.u-ryukyu.ac.jpである。~
計算ノード側の設定はこれだけなので、この処理が終わったらpbs_momを起動させて終わり。~
~
!!!注意!!!~
TORQUEでは実行結果をpbs_server側のサーバへscpで送ります。ですのでRSA認証を行っていないと実行結果が送られず、Jobを実行したクラスタの/var/torque/undeliverdへ送られてしまいます。注意してください。~


 [root@cls001 ~]# pbs_mom

**動作確認方法 [#a1eec1c3]
サーバノード側でpbsnodes -a を実行すると、稼働しているかどうかが確認できる。

 [maui@naha ~]$ pbsnodes -a
 cls001.cs.ie.u-ryukyu.ac.jp
      state = free
      np = 2
      ntype = cluster
      status = opsys=linux,uname=Linux cls001.cs.ie.u-ryukyu.ac.jp 2.6.23.1-42.fc8 #1 SMP Tue Oct 30  
 13:55:12 EDT 2007 i686,sessions=1392 4317 4279 5422 14032 14053 26888 26779 
 30846,nsessions=9,nusers=4,idletime=953,totmem=3131028kb,availmem=2961004kb,physmem=10
 33884kb,ncpus=2,loadave=0.01,netload=281696549,state=free,jobs=? 0,rectime=1211966490
 
 cls002.cs.ie.u-ryukyu.ac.jp
      state = free
      np = 2
      ntype = cluster
      status = opsys=linux,uname=Linux cls002.cs.ie.u-ryukyu.ac.jp 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 
 13:55:12 EDT 2007 i686,sessions=13893 18162 
 30740,nsessions=3,nusers=3,idletime=605475,totmem=3131028kb,availmem=2887080kb,physme
 m=1033884kb,ncpus=2,loadave=0.00,netload=3903101879,state=free,jobs=? 
 0,rectime=1211966502
 ------------------------------------------------------------------------------
 cls100.cs.ie.u-ryukyu.ac.jp
      state = free
      np = 2
      ntype = cluster
      status = opsys=linux,uname=Linux cls100.cs.ie.u-ryukyu.ac.jp 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 
 13:55:12 EDT 2007 
 i686,sessions=22757,nsessions=1,nusers=1,idletime=253805,totmem=3131028kb,availmem=30398
 60kb,physmem=1033884kb,ncpus=2,loadave=0.00,netload=1363276394,state=free,jobs=? 
 0,rectime=1211966494


このようにstate=freeとなっていれば接続が正しくされているということになる。 

上記の方法でノードの設定が確認できたら、TORQUEを使用することができる。~


*Maui Schedulerの設定 [#r4c745d3]
TORQUEのスケジュール機能を拡張するmauiスケジューラの設定方法。~
基本的にはMauiのAdminページを見て設定しました。ので、間違っているところもあるかもしれません。~
**Mauiのインストール [#q4ca2058]
とりあえず、[[Cluster Resources>http://www.clusterresources.com/]]からMauiをdownload。~
この設定をするのはサーバノード側だけなので設定は1度でいいです。~
ソースを落としたあとは展開してconfigure、make、make installでMauiをinstall。~

 [root@naha ~]$tar xvzf [maui~].tar.gz
 [root@naha ~]$cd [maui]
 [root@naha maui-]$./configure --with-pbs=/usr
 [root@naha maui-]$make
 [root@naha maui-]$make install

とりあえずのinstallは上記の通りですが、入れる際はかならずmaui Adminのページを読んでください。~

**maui.cfgの設定 [#lfb864f5]
mauiの設定はmaui.cfgで行います。

 # maui.cfg 3.2.6p19
 
 SERVERHOST            naha.ie.u-ryukyu.ac.jp
 # primary admin must be first in list
 ADMIN1                root
 JOBNODEMATCHPOLICY EXACTNODE
 
 
 # Resource Manager Definition
 
 RMCFG[base] TYPE=PBS HOST=naha.ie.u-ryukyu.ac.jp
 
 # Allocation Manager Definition
 
 AMCFG[bank]  TYPE=NONE
 
 # full parameter docs at http://supercluster.org/mauidocs/a.fparameters.html
 # use the 'schedctl -l' command to display current configuration
 
 # Backfill: http://supercluster.org/mauidocs/8.2backfill.html
 
 BACKFILLPOLICY        BESTFIT
 RESERVATIONPOLICY     NEVER
 PREEMPTPOLICY         SUSPEND
 NODEAVAILABILITYPOLICY DEDICATED:PROC COMBINED
 
 # Node Allocation: http://supercluster.org/mauidocs/5.2nodeallocation.html
 
 NODEALLOCATIONPOLICY PRIORITY
 NODECFG[DEFAULT] PRIORITYF='APROCS + .01 * AMEM - 10 * JOBCOUNT'
 
 
 # QOS: http://supercluster.org/mauidocs/7.3qos.html
 
 
 CLASSCFG[dque]  QDEF=low:PRIORITY=1
 CLASSCFG[three_hours] QDEF=high:PRIORITY=10
 
 QOSCFG[high] PRIORITY=100
 QOSCFG[high] QFLAGS=PREEMPTOR
 
 QOSCFG[med] PRIORITY=10
 QOSCFG[med] QFLAGS=PREEMPTOR,PREEMPTEE
 
 QOSCFG[low] PRIORITY=0
 QOSCFG[low] QFLAGS=PREEMPTEE
 
上記の設定ファイルは、queue毎にPriorityを割り振り、優先度の高いJobが実行できない場合は、優先度の低いJobをSuspentして優先度の高いJobを実行するという方針になっています。~

-PREEMPTOR、PREEMPTEEの設定~
QOSCFG[]の記述でPREEMPTOR、PREEMPTEEの設定が行われています。
これをつかってqueueの優先度を設定しています。
このPREEMPTEEが設定されているqueueは、PREEMPTORと設定されているqueueにリソースを譲るという処理が行われるためです。~
よって最優先の仕事にはPREEMPTOR属性、それほど急いでいない場合にはPREEMPTEE属性を持つqueueに仕事を投げることでより効率よく仕事を処理することになります。~
100台以上クラスタがあるためjobが滞ることは稀だと思いますが、どうしても邪魔をされたくないJobはthree_hoursのqueueを使うと良いでしょう。


 
*関連ページ [#j1e35296]
[[Howto/TORQUE>http://www.ie.u-ryukyu.ac.jp:16080/howto/index.php?Howto%2FTORQUE]]
#lsx(tag=,contents=(depth=1),except=Howto)
*参考リンク [#f1000b18]
-[[TORQUE Admin Manual>http://www.clusterresources.com/torquedocs21/]]

-[[Maui Scheduler Administrator's Guide>http://www.clusterresources.com/products/maui/docs/mauiadmin.shtml]]

-[[ジョブスケジューラTORQUEの利用法>http://mikilab.doshisha.ac.jp/dia/research/report/2005/0809/003/report20050809003.html]]

-------
//tagはサービス名のみ。web,mail,nfsなど。
//どれにも当てはまらない場合は無理につけなくてもよい。
//&tag();

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