0、写在前面:此文是我刚读开始读硕士时练习使用实验室集群调度系统pbs写下的文字,其实写的很粗糙,忽略了很多细节。后来发现网络上有很多朋友对pbs系统的安装和运维感兴趣,但是能找到的资料比较少。我个人参考的是实验室内部wiki网站上的详细教程,此次导出成pdf放在:
如果有朋友对pbs非常感兴趣,可以参考这个pdf文档。
1、此次使用torque-5.0.0-1_43d8f09a.tar.gz这个版本http://www.adaptivecomputing.com/downloading/?file=/torque/torque-5.0.0-1_43d8f09a.tar.gz,个人备用下载链接:https://wnm1503303791.github.io/interesting-work/blog/torque-5.0.0-1_43d8f09a.tar.gz。我所使用的linux系统是centos6.5。将torque源码包下载至linux根目录下的tmp文件夹,tar -xf命令解压。并安装以下编译工具:
yum install libtool-devel libxml2-devel openssl-devel gcc gcc-c++ boost-devel
2、cd命令进入解压后的文件夹torque-5.0.0-1_43d8f09a,切换为root用户,逐次运行下列四条命令:
./configure
make
sudo make install
make packages
最后一条命令会在文件夹内产生下面这些.sh脚本:
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
在本机安装脚本:
./torque-package-clients-linux-x86_64.sh --install
./torque-package-mom-linux-x86_64.sh --install
在目录即/tmp/torque-5.0.0-1_43d8f09a下执行:
cp contrib/init.d/pbs_server /etc/init.d/pbs_server chkconfig --add pbs_server cp contrib/init.d/pbs_server /etc/init.d/pbs_sched chkconfig --add pbs_sched cp contrib/init.d/pbs_server /etc/init.d/trqauthd chkconfig --add trqauthd
本机即是管理节点也是计算节点:
cp ./contrib/init.d/pbs_mom /etc/init.d/ chkconfig --add pbs_mom service pbs_mom start ./torque.setup root qterm -t quick pbs_server qstat -q
3、返回linux根目录:
cd /
进入路径:/var/spool/torque/server_priv/
创建nodes文件:
vi nodes
往里面写入内容:localhost.localdomain np=1
保存此文件,再reboot命令重启操作系统。
4、Torque主要是由三个主要部件组成:
(1)pbs_server:PBS服务守护进程,负责接收作业提交,位于服务节点上
(2)pbs_sched:PBS调度守护进程,负责调度作业,位于服务节点上
(3)pbs_mom:PBS守护进程, 负责监控本机并执行作业,位于所有计算节点上
在单计算机环境下,以上三者均运行在本机。
5、明白了4的意思之后就启动torque了:
pbs_server
pbs_sched
pbs_mom
trqauthd
6、启动服务后可以写个脚本run.sh测试一下:
#!/bin/sh g++ -o test1 test1.cpp sleep 60 ./test1
可以在本地随便写一个c++代码test1.cpp,然后命令提交脚本至pbs:
qsub ./run.sh
再使用命令qstat查看:
qstat -a
7、pbs常用命令汇总:
qsub提交作业、qstat查看已投运作业的情况、qdel删除作业、pnodes查看计算节点资源;
交互模式提交作业,qsub -I;在交互模式中转发图形界面,适用于画图、有图形界面的软件,qsub -I -X;
查看作业运行的节点,qstat -n;查看系统作业队列划分情况(每个队列包含的节点、用户控制),qstat -Qf;
pbs作业脚本常用格式:
#PBS -N python_cos_work #PBS -l nodes=1:ppn=2 #PBS -l mem=2G #PBS -l walltime=7200:00:00 #PBS -q batch #PBS -V cd /home/tuzhuo/code/git/pycode/rs python cos.py
pnodes命令查看系统资源,根据系统可用的CPU资源,为自己的作业合理申请资源。
tz@croplab, HZAU
2019/7/26