PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包单节点,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。
PBS是功能最为齐全, 历史最悠久, 支持最广泛的本地集群调度器之一。PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL。
PBS的目前包括:openPBS, PBS Pro和Torque三个主要分支.
应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。本文主要说明Torque的安装与配置,通过编译源代码的方式安装torque由于整个torque都被安装在一台计算机上,所以上述pbs_server、pbs_mom和pbs_sched都会被安装在一起。
Torque主要由三个主要部件组成:
版本 | 下载网址 |
---|---|
torque-6.1.1.1 | http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.1.1.tar.gz |
torque-6.1.2 | http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.2.tar.gz |
官网下载 | http://www.adaptivecomputing.com/support/download-center/torque-download |
注:不同版本的安装和配置类似,本文以torque-6.1.1.1为例。
lscpu: 此命令用来显示cpu的相关信息(lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息)
主要信息:
CArchitecture: #架构PU(s)
Thread(s) per core: #每个核心线程
Core(s) per socket: #每个CPU物理核数
CPU socket(s): #cpu插槽数
Vendor ID: #cpu厂商ID
CPU family: #cpu系列
Model: #型号
Stepping: #步进
CPU MHz: #cpu主频
Virtualization: #cpu支持的虚拟化技术
注:总的Threads数量(CPU逻辑核数) = 2(Sockets) × 4(Core(s)) × 2(Threads) = 16(CPU(s)).
[root@master ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 44
Stepping: 2
CPU MHz: 2401.000
BogoMIPS: 4799.88
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 12288K
NUMA node0 CPU(s): 0-3,8-11
NUMA node1 CPU(s): 4-7,12-15
或者用nproc直接查看逻辑核数。
[root@master ~]# nproc
16
hostname: 此命令用来显示主机名称。(默认主机名为:localhost)
ifconfig -a|grep “inet addr”:此命令用来显示主机IP。
[root@master ~]# hostname
master
[root@master ~]# ifconfig -a|grep "inet addr"
inet addr:ip地址 Bcast:网关 Mask:子网掩码
inet addr:127.0.0.1 Mask:255.0.0.0
CentOS 6 :
需要更改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常,需要保持两处一致。更改时需要切换到root用户。
[root@master ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
更改HOSTNAME=后的内容为master
[root@master ~]# vi /etc/hosts
127.0.0.1 master ###添加到此处#####
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
在首行添加:“127.0.0.1 master” 或者 “主机IP master"。
注意:修改上面两个文件是永久的,重启系统后才生效。
CentOS 7:
可以直接用命令修改:
[root@centos7 ~]# hostnamectl set-hostname master
注意:这也是永久生效,但是不会立刻生效,需重启。
为避免重新启动可用“hostname”临时修改主机名:
[root@centos7 ~]# hostname master
[root@centos7 ~]# hostname
master
master主机名立刻生效,但它只是临时地修改主机名,系统重启后会恢复原样的。
[root@master ~]# yum install libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool-y
[root@master ~]# wget http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.1.1.tar.gz
[root@master ~]# tar zxvf torque-6.1.1.1.tar.gz
[root@master ~]# cd torque-6.1.1.1
[root@master torque-6.1.1.1]# ./configure --prefix=/usr/local/torque --with-scp --with-default-server=master
[root@master torque-6.1.1.1]# make -j
[root@master torque-6.1.1.1]# make install
[root@master torque-6.1.1.1]# make packages
[root@master torque-6.1.1.1]# ./libtool --finish /usr/local/torque/lib
注意:prefix设置安装路径,with-default-server设置主机名,packages(打包)是为了方便于其他节点安装
将contrib/init.d/目录下的pbs_server、pbs_sched、pbs_mom、trqauthd添加到系统初始化简脚本/etc/init.d/中,并设置为开机启动。
[root@master torque-6.1.1.1]# cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/
[root@master torque-6.1.1.1]# for i in pbs_server pbs_sched pbs_mom trqauthd; do chkconfig --add $i; chkconfig $ion; done
设置环境变量。
[root@master torque-6.1.1.1]# vi /etc/profile.d/torque.sh
TORQUE=/usr/local/torque
export PATH=$PATH:/usr/local/torque/bin:/usr/local/torque/sbin
###添加后保存###
[root@master torque-6.1.1.1]# source /etc/profile
[root@master torque-6.1.1.1]# echo '/usr/local/lib' > /etc/ld.so.conf.d/torque.conf
[root@master torque-6.1.1.1]# ldconfig
注意:ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。如果没有这一步可能会出现libtorque.so.2库文件找不到错误。
将root设为Torque的管理账户
[root@master torque-6.1.1.1]# ./torque.setup root
安装mom、client
[root@master torque-6.1.1.1]# ./torque-package-mom-*.sh --install
[root@master torque-6.1.1.1]# ./torque-package-clients-*.sh --install
设置Torque(工作目录为/var/spool/torque/)
a)设置服务器名:编辑/var/spool/torque/server_name文件
[root@master torque-6.1.1.1]# vi /var/spool/torque/server_name
master
b)设置机群所有机器名和设置计算总核数:编辑/var/spool/torque/server_priv/nodes文件
[root@master torque-6.1.1.1]# vi /var/spool/torque/server_priv/nodes
master np=16
c)设置MOM进程配置文件:编辑 /var/spool/torque/mom_priv/config文件
[root@master torque-6.1.1.1]# vi /var/spool/torque/mom_priv/config
$pbsserver master
$logevent 255
启动pbs_server、pbs_sched、pbs_mom、trqauthd几个服务
[root@master torque-6.1.1.1]# for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i start; done
查看运行情况
[root@master torque-6.1.1.1]# ps -e | grep pbs
2800 ? 00:00:23 pbs_mom
2968 ? 00:00:00 pbs_sched
3277 ? 00:00:05 pbs_server
创建设置作业队列
[root@master torque-6.1.1.1]# qmgr
Max open servers: 9
Qmgr: create queue test
Qmgr: set queue test queue_type = execution
Qmgr: set queue test started = true
Qmgr: set queue test enabled = true
Qmgr: set queue test resources_default.walltime = 240:00:00
Qmgr: set queue test resources_default.nodes = 1
Qmgr: set server default_queue = test
Qmgr: exit
[root@master torque-6.1.1.1]#qstat -q ###查看队列信息###
server: master
Queue Memory CPU Time Walltime Node Run Que Lm State
---------------- ------ -------- -------- ---- --- --- -- -----
test -- -- -- -- 6 0 -- E R
batch -- -- -- -- 0 0 -- E R
----- -----
6 0
注意:创建的队列名称为test
查看节点的状态信息
[root@master torque-6.1.1.1]# qnodes
master
state = free
power_state = Running
np = 16
ntype = cluster
jobs = 0-7/8.master
status = opsys=linux,uname=Linux master 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64,sessions=2424 2485 2641 2649 2751 2797 3257 3500 3504 3506 3518 3531 3552 3804 4571 4584 4630,nsessions=17,nusers=2,idletime=18777,totmem=36968804kb,availmem=35385368kb,physmem=24598892kb,ncpus=16,loadave=7.99,gres=,netload=608362704,state=free,varattr= ,cpuclock=OnDemand:2401MHz,version=6.1.1.1,rectime=1591878323,jobs=8.master
mom_service_port = 15002
mom_manager_port = 15003
切换到user用户提交任务
[root@master torque-6.1.1.1]# su user
[user@master torque-6.1.1.1]$ echo sleep 30 | qsub
1.master
[user@master torque-6.1.1.1]$ qstat
Job ID Name User Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
1.master STDIN user 0 R test
[luys@master torque-6.1.1.1]$ qstat -a
master:
Req'd Req'd Elap
Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time
----------------------- ----------- -------- ---------------- ------ ----- ------ --------- --------- - ---------
1.master user test STDIN 29590 1 1 -- 240:00:00 R 00:02:03
至此安装成功!!!