Centos8集群Torque作业管理系统安装(四)
背景介绍
前面安装了这么多的软件,终于要安装我们的主角 Torque 了。组里的服务器就是用的Torque作为作业管理的。
Torque 作业系统的搭建
基本概念
对于高性能计算集群而言,作业调度系统是必不可少的工具软件,不论是单机计算还是集群计算,它的作用是更好的分配计算资源,管理用户的作业。作业调度软件有很多种,常见的有Torque、MAUI、SGE、slurm、HTcondar、openPBS等。我这里采用的Torque软件。
注意
关机的时候先关计算节点再关控制节点,开机的时候先开控制节点再开计算节点。
基本信息
主机名 | 系统 | ip |
---|---|---|
master(控制节点) | Centos8 stream | 172.16.34.122 |
node1(计算节点) | Centos8 stream | 172.16.34.123 |
控制节点和计算节点的共同配置
- 为了避免服务端和客户端无法通信,关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
SELINUX=disabled - 修改hosts文件
vi /etc/hosts
添加
172.16.34.122 master
172.16.34.123 node1
控制节点的配置
- 安装相关的软件
yum install libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool -y
- 下载 Torque 软件,相应的软件可以在本博客的资源页面找到,上传到控制节点并解压。
tar -zxvf torque-6.1.3_gcc8.tar.gz
- 进入 Torque 文件夹,并配置安装位置
cd torque-6.1.3
./configure --prefix=/usr/local/torque --with-scp --with-default-server=master #注意 master 为控制节点主机名,请根据自己的情况修改 - 进行安装
make
make install
make packages - 添加库到系统
libtool --finish /usr/local/torque/lib
- 拷贝作业调度服务到 /etc/init.d ,当我们安装集群版本时,控制节点一般不参与计算,无需拷贝 pbs_mom ,其为作业调度的客户端服务进程,只需要 pbs_server 和pbs_trqauthd 。
cp contrib/init.d/pbs_server /etc/init.d/
cp contrib/init.d/trqauthd /etc/init.d/ - 配置 Torque 环境,编译完成后会在 /etc/profile.d/目录下自动生成torque.sh文件
ls
source /etc/profile.d/torque.sh
- 设置所有用户每次登陆都配置 Torque 环境
vi /etc/profile
#添加
source /etc/profile.d/torque.sh - 设置服务开机自动启动
systemctl enable pbs_server.service
systemctl enable trqauthd.service - 初始化并启动 Torque 服务
./torque.setup root
qterm
for i in pbs_server trqauthd; do service $i start;done - 在 /var/spool/torque/server_priv/nodes 添加计算节点的信息
vi /var/spool/torque/server_priv/nodes
- nodes文件的添加规则为:主机名,可用CPU核心数(物理核心数),作业队列名
- node1 为主机名
- np=填写该主机的可用CPU核心数,请注意,填写物理核心数,而不是超线程数
- bigmem 是队列名。可以填写多个队列名
- 将计算节点的所需要的安装包上传到计算节点
scp torque-package-clients-linux-x86_64.sh torque-package-mom-linux-x86_64.sh node1:/root/
scp contrib/init.d/pbs_mom node1:/etc/init.d/
scp contrib/init.d/trqauthd node1:/etc/init.d/
计算节点的配置
- 运行安装程序
./torque-package-mom-linux-x86_64.sh --install
./torque-package-clients-linux-x86_64.sh --install - 修改配置文件
vi /var/spool/torque/mom_priv/config
#添加
pbsserver master
logevent 255 - 启动服务设置开机自动启动
/etc/init.d/pbs_mom start
systemctl enable pbs_mom
/etc/init.d/trqauthd start
systemctl enable trqauthd - 每一个计算节点都需要这样配置
重启作业调度系统
- 控制节点:
systemctl restart pbs_server
systemctl restart trqauthd - 计算节点:
systemctl restart trqauthd
systemctl restart pbs_mom
相关命令
- for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i start; done
- for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i stop; done
- for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i status; done
或者 - /etc/init.d/pbs_server start|stop|status
- /etc/init.d/pbs_sched start|stop|status
- /etc/init.d/pbs_mom start|stop|status
- /etc/init.d/trqauthd start|stop|status
Maui的安装
基本概念
Torque自带一个任务调度器 pbs_sched ,但是我们并没有安装。我们安装Maui来代替,其功能丰富,适合中小集群使用。Maui 只需装在控制节点上,计算节点上不必安装。为丰富torque的管理调度功能,一般用maui调度和管理torque作业。
注意
Maui 只需要安装在控制节点上。
开始安装 Maui
- 下载 Maui 软件,相应的软件可以在本博客的资源页面找到,上传到控制节点并解压。
tar -zxvf maui-3.3.1.tar.gz
- 进入 Maui 文件夹,并配置安装位置
cd maui-3.3.1
./configure --prefix=/usr/local/maui --with-pbs=/usr/local/torque
- ./configure 预编译
- –prefix= 指定编译安装路径
- –with-pbs=/usr/local/torque 指定torque路径
- 安装如果make过程中出现类似“/usr/bin/ld: cannot find -ltorque”,编辑Makefile文件,参考如下添加torque的库路径和头文件路径:
make
make install
export PBSCFLAGS = -I/usr/local/torque/include
export PBSLDFLAGS = -L/usr/local/torque/lib -ltorque - 配置
vi contrib/service-scripts/redhat.maui.d
修改
MAUI_PREFIX=/opt -> MAUI_PREFIX=/usr/local/maui
daemon --user maui -> daemon --user root - 启动 Maui ,并设置开机自动启动
cp contrib/service-scripts/redhat.maui.d /etc/init.d/maui
chmod a+x /etc/init.d/maui
chkconfig maui on
systemctl enable maui #开机启动
/etc/init.d/maui start #启动 - 相关命令
- /etc/init.d/maui start #启动maui
- /etc/init.d/maui status #查看maui开启状态
- /etc/init.d/maui restart #重启maui
- /etc/init.d/maui stop #停止maui
可能遇到的问题
- pbsnodes: Server has no node list MSG=node list is empty - check ‘server_priv/nodes’ file
用 qterm 之后重启服务
测试
- 控制节点和计算节点都关机重启,注意顺序
- 看到进程
ps -e | grep 进程名字
- 设置队列
qmgr -c "create queue bigmem queue_type=execution"
qmgr -c "set queue bigmem enabled = True"
qmgr -c "set queue bigmem started = True" #我这里设置的队列名字是 bigmem - 使用 VASP 进行测试
- 准备好 VASP文件和提交任务脚本
- 设置好 VSAP 和 Intel oneAPI 的环境变量,可以参考:Centos8 stream安装 VASP 2024 Intel oneAPI
- 由于我的 VASP 安装在 /opt 下面 所以我需要将 node1 的/opt 挂载到master的 /opt 下面,具体方法参考:Centos8集群Torque作业管理系统安装(二)
- 完成后就可以提交任务。
qsub workVasp.pbs
可以看到计算成功,表明我们的Torque作业管理系统安装成功。
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 哆啦酱的点心屋!
评论