PBS是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。 PBS的目前包括openPBS,PBS Pro和Torque三个主要分支。 其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBS pro是PBS的商业版本,功能最为丰富。Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本。
下面是本人安装torque的过程。
一、Torque安装
在master(管理结点上)
1、解压安装包
[root@master tmp]# tar zxvf torque-2.3.0.tar.gz
2、进入到解压后的文件夹
./configure --with-default-server=master
make
make install
3、
(1)
[root@master torque-2.3.0]#./torque.setup <user>
<user>必须是个普通用户
(2)
[root@master torque-2.3.0]#make packages
把产生的 tpackages , torque-package-clients-linux-x86-64.sh,
torque-package-mom-linux-x86-64.sh 拷贝到所有节点。
(3)
[root@master torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh --install
[root@master torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh --install
(4)编辑
/var/spool/torque/server_priv/nodes
(需要自己建立)
加入如下内容
master np=4
node01 np=4
........
node09 np=4
(5)启动
pbs_server,pbs_sched,pbs_mom,
并把其写到/etc/rc.local里使其能开机自启动。
(6)创建队列
[root@master ~]# qmgr
create queue students
set queue students queue_type = Execution
set queue students Priority = 40
set queue students resources_max.cput = 96:00:00
set queue students resources_min.cput = 00:00:01
set queue students resources_default.cput = 96:00:00
set queue students enabled = True
set queue students started = True
4、在node0x (x=1-9,计算结点上)
[root@node0x torque-2.3.0]# ./torque-package-clients-linux-x86_64.sh --install
[root@node0x torque-2.3.0]# ./torque-package-mom-linux-x86_64.sh --install
然后启动
pbs_mom ,
把pbs_mom写入/etc/rc.local
二、Torque PBS使用
1、创建用户
在master的root下
useradd test
passwd test
输入test密码
到/var/yp下
make
一下
2、配置普通用户的ssh
su test
cd
ssh-keygen -t dsa
cd .ssh
cat id_pub.dsa >>authorized_keys
chmod 600 authorized_keys
3、编写作业脚本
[test1@master t]vi pbsjob
#!/bin/tcsh
#PBS -o /home/test1/pbstest/t/output
标准输出文件
#PBS -e /home/test1/pbstest/t/error
错误输出文件
#PBS -l nodes=5:ppn=4
规定使用的节点数以及每个节点能跑多少核
#PBS –q students
把任务提交到
students
队列中
cd $PBS_O_WORKDIR
到工作目录下(此为
PBS
提供的环境变量)
mpirun –machine $PBS_NODEFILE -np 20 ./vasp
4、启动mpd
mpdboot -n 10 -f mfa
mfa内容:
master:4
node01:4
….
node09:4
5、提交,查询,删除作业
提交作业:
qsub pbsjob
作业提交后会有一个作业号
[test1@master pbstest]$ qsub pbsjob
48.master
查询作业:qstat
[test1@master pbstest]$ qstat
Job id Name User Time Use S Queue
------------------------- ---------------- --------------- -------- - -------------------------------
48.master pbstest test1 00:00:00 R students
删除作业:qdel 作业号
[test1@master pbstest]$ qdel 48