Torque Resource Manager是一套OpenSource的軟體,主要是用來控管叢集式電腦的工作排程,雖然是免費軟體但功能還算蠻完整的,可以設定不同的工作類別,分配不同的資源,還可以設定工作完成時的e-mail通知...等等,我所知道的幾座叢集式電腦上都有安裝這個。會重新安裝這套軟體(版本2.4.17,於RHEL4上)是因為各個節點間的版本不一樣,造成了一些奇奇怪怪的問題,像是什麼送工作就會讓伺服器服務停掉啦...等等的,安裝步驟如下,主要其實也是參考官方說明來操作:
2.4.x | 官方已於2012 Aug.31停止對此版本的支援,2.4.17為最終版本 |
2.5.x | 未來只會新增小功能,官方表示這是最值得信賴的版本,推薦安裝2.5.12 |
3.0.x | 除了擁有2.5.x的所有功能以外,新增對「非統一記憶體存取」 (Non-Uniform Memory Access, NUMA)架構的支援,此版本不向下相容,官方已於2012 Dec.31停止對此版本的支援,3.0.6為最終版本 |
4.x.x | 版本4以後多是針對較為龐大的運算環境(PETA flops)所設計的,有興趣的人可以自行研究 |
[root@HPC TORQUE]$ ./configure --prefix=/usr/TORQUE --with-scp \ Ready for 'make'. |
[root@HPC TORQUE]$ make packages Building ./torque-package-clients-linux-x86_64.sh ... Building ./torque-package-mom-linux-x86_64.sh ... ...(略) [root@HPC TORQUE]$ ls torque-package-clients-linux-x86_64.sh torque-package-devel-linux-x86_64.sh torque-package-doc-linux-x86_64.sh torque-package-mom-linux-x86_64.sh torque-package-server-linux-x86_64.sh |
到此基本的安裝就完成了,不過接下來的設定才是最重要的部分!
export PBS=/usr/TORQUE export PBS_SERVER_HOME=/var/spool/TORQUE export TORQUE=$PBS export PATH=$PBS/bin:$PBS/sbin:$PATH export MANPATH=$PBS/man:$MANPATH export LD_LIBRARY_PATH=$PBS/lib:$LD_LIBRARY_PATH |
[root@HPC ~]$ source /etc/profile.d/torque.sh [root@HPC ~]$ which pbs_server /usr/TORQUE/sbin/pbs_server |
[root@HPC ~]# cat /var/spool/TORQUE/server_name HPC |
[root@HPC torque-2.4.17]$ service pbs_server status pbs_server: unrecognized service [root@HPC torque-2.4.17]$ cp contrib/init.d/pbs_server /etc/init.d [root@HPC torque-2.4.17]$ cp contrib/init.d/pbs_mom /etc/init.d [root@HPC torque-2.4.17]$ cp contrib/init.d/pbs_sched /etc/init.d [root@HPC torque-2.4.17]$ chkconfig --add pbs_server [root@HPC torque-2.4.17]$ chkconfig --add pbs_mom [root@HPC torque-2.4.17]$ chkconfig --add pbs_sched [root@HPC torque-2.4.17]$ service pbs_server status pbs_server is not running |
# 在伺服器端,以下這兩個為必要服務 [root@HPC torque-2.4.17]$ chkconfig pbs_server on [root@HPC torque-2.4.17]$ chkconfig pbs_sched on # 如果也要把伺服器端加入運算資源中,那也要啟動pbs_mom [root@HPC torque-2.4.17]$ chkconfig pbs_mom on |
[root@HPC ~]$ cat /etc/torque.conf PBS_EXEC=/usr/TORQUE PBS_HOME=/var/spool/TORQUE # 1表示啟動,0則為不啟動 PBS_START_SERVER=1 # 同樣的,如果你的主機也要加入運算資源裡,那這個也要啟動 PBS_START_MOM=1 PBS_START_SCHED=1 PBS_SERVER=HPC # 最後確定一下torque這個服務有設定成開機啟動: [root@HPC ~]$ chkconfig --list |grep "torque" torque 0:off 1:off 2:on 3:on 4:on 5:on 6:off # 這樣就OK了! |
# 方法一: [root@HPC torque-2.4.17]$ pbs_server -t create # 方法二:用裡面的script,後面接你要讓它成為TORQUE管理者的帳號 [root@HPC torque-2.4.17]$ ./torque.setup root initializing TORQUE (admin: root@HPC) Max open servers: 9 Max open servers: 9 |
# 讓使用者可以查詢別人送的工作 [root@HPC ~]$ qmgr -c "set server query_other_jobs = True" # 允許於運算節點上送工作(或者是去修改/etc/hosts.equiv這樣就不需要設定這參數) [root@HPC ~]$ qmgr -c "set server allow_node_submit = True" # 限制使用者所能送的工作數(這裡queue "batch"要依你設定的queue的名稱來改 # 如果沒有做額外設定的話預設值就是batch) [root@HPC ~]$ qmgr -c "set queue batch max_user_queuable=20" # 更改預設的walltime(預設為一小時,以下將會把他設定為兩小時,用02:00:00也可以) [root@HPC ~]$ qmgr -c "set queue batch resources_default.walltime=7200" # 設定batch這個工作序列最多可以使用到幾顆運算核心 [root@HPC ~]$ qmgr -c "set queue batch resources_max.ncpus = 30" |
[root@HPC ~]$ pbsnodes pbsnodes: Server has no node list MSG=node list is empty - check 'server_priv/nodes' file |
[root@HPC ~]$ pbs_server [root@HPC ~]$ pbs_sched # 確認一下伺服器的狀態 [root@HPC ~]$ qmgr -c 'list server' Server HPC server_state = Active scheduling = True total_jobs = 0 ....(略) # 確認一下工作列裡的工作可以開始進行了 [root@HPC ~]$ gmqr -c 'list queue batch' Queue batch queue_type = Execution total_jobs = 0 ...(略) enabled = True started = True |
[root@node1 ~]$ vi /var/spool/TORQUE/mom_priv/config $pbsserver HPC $logevent 255 # 其實只有上面兩行是必備的,下面這行是標明作業系統 opsys RHEL4 $usecp *:/home /home $usecp *:/scra /scra $usecp *:/scra2 /scra2 # 下面這行是只允許 $restricted HPC # 最後啟動pbs_mom [root@node1 ~]$ service pbs_mom start Starting TORQUE Mom: [ OK ] # 此時執行pbsnodes,如果設定正確應該就可以看到node上線了 [root@node1 ~]$ pbsnodes node1 state = free np = 12 ntype = cluster status = ......叭啦叭啦一狗票(略) |
[Cypresslin@HPC work]# vi TORQUEtest.sh |
[root@HPC ~]$ qmgr -c 'print server' > TORQUE.server.bak # 要把備份的設定叫回來也很簡單,只要: [root@HPC ~]$ qmgr < TORQUE.server.bak |
參考資料:TORQUE Admin Manual
[torqueusers] a question about $usecp
<-Memo