背景介绍

前面安装了这么多的软件,终于要安装我们的主角 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

控制节点和计算节点的共同配置

  1. 为了避免服务端和客户端无法通信,关闭防火墙和selinux
    systemctl stop firewalld
    systemctl disable firewalld
    vi /etc/selinux/config
    SELINUX=disabled
  2. 修改hosts文件
    vi /etc/hosts
    #添加
    172.16.34.122 master
    172.16.34.123 node1

控制节点的配置

  1. 安装相关的软件
    yum install libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool -y
  2. 下载 Torque 软件,相应的软件可以在本博客的资源页面找到,上传到控制节点并解压。
    tar -zxvf torque-6.1.3_gcc8.tar.gz
  3. 进入 Torque 文件夹,并配置安装位置
    cd torque-6.1.3
    ./configure --prefix=/usr/local/torque --with-scp --with-default-server=master #注意 master 为控制节点主机名,请根据自己的情况修改
  4. 进行安装
    make
    make install
    make packages
  5. 添加库到系统
    libtool --finish /usr/local/torque/lib
  6. 拷贝作业调度服务到 /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/
  7. 配置 Torque 环境,编译完成后会在 /etc/profile.d/目录下自动生成torque.sh文件
    ls 
    source /etc/profile.d/torque.sh
  8. 设置所有用户每次登陆都配置 Torque 环境
    vi /etc/profile
    #添加
    source /etc/profile.d/torque.sh
  9. 设置服务开机自动启动
    systemctl enable pbs_server.service
    systemctl enable trqauthd.service
  10. 初始化并启动 Torque 服务
    ./torque.setup root
    qterm
    for i in pbs_server trqauthd; do service $i start;done
  11. 在 /var/spool/torque/server_priv/nodes 添加计算节点的信息
    vi /var/spool/torque/server_priv/nodes
  • nodes文件的添加规则为:主机名,可用CPU核心数(物理核心数),作业队列名
  • node1 为主机名
  • np=填写该主机的可用CPU核心数,请注意,填写物理核心数,而不是超线程数
  • bigmem 是队列名。可以填写多个队列名
  1. 将计算节点的所需要的安装包上传到计算节点
    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/

计算节点的配置

  1. 运行安装程序
    ./torque-package-mom-linux-x86_64.sh --install
    ./torque-package-clients-linux-x86_64.sh --install
  2. 修改配置文件
    vi /var/spool/torque/mom_priv/config
    #添加
    pbsserver master
    logevent 255
  3. 启动服务设置开机自动启动
    /etc/init.d/pbs_mom start
    systemctl enable pbs_mom
    /etc/init.d/trqauthd start
    systemctl enable trqauthd
  4. 每一个计算节点都需要这样配置

重启作业调度系统

  • 控制节点:
    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

  1. 下载 Maui 软件,相应的软件可以在本博客的资源页面找到,上传到控制节点并解压。
    tar -zxvf maui-3.3.1.tar.gz
  2. 进入 Maui 文件夹,并配置安装位置
    cd maui-3.3.1
    ./configure --prefix=/usr/local/maui --with-pbs=/usr/local/torque
  • ./configure 预编译
  • –prefix= 指定编译安装路径
  • –with-pbs=/usr/local/torque 指定torque路径
  1. 安装
    make
    make install
    如果make过程中出现类似“/usr/bin/ld: cannot find -ltorque”,编辑Makefile文件,参考如下添加torque的库路径和头文件路径:
    export PBSCFLAGS = -I/usr/local/torque/include
    export PBSLDFLAGS = -L/usr/local/torque/lib -ltorque
  2. 配置
    vi contrib/service-scripts/redhat.maui.d
    #修改
    MAUI_PREFIX=/opt -> MAUI_PREFIX=/usr/local/maui
    daemon --user maui -> daemon --user root
  3. 启动 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 #启动
  4. 相关命令
  • /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 之后重启服务

测试

  1. 控制节点和计算节点都关机重启,注意顺序
  2. 看到进程
    ps -e | grep 进程名字

  3. 设置队列
    qmgr -c "create queue bigmem queue_type=execution"
    qmgr -c "set queue bigmem enabled = True"
    qmgr -c "set queue bigmem started = True" #我这里设置的队列名字是 bigmem
  4. 使用 VASP 进行测试
  5. 准备好 VASP文件和提交任务脚本

  6. 设置好 VSAP 和 Intel oneAPI 的环境变量,可以参考:Centos8 stream安装 VASP 2024 Intel oneAPI
  7. 由于我的 VASP 安装在 /opt 下面 所以我需要将 node1 的/opt 挂载到master的 /opt 下面,具体方法参考:Centos8集群Torque作业管理系统安装(二)
  8. 完成后就可以提交任务。
    qsub workVasp.pbs



    可以看到计算成功,表明我们的Torque作业管理系统安装成功。

参考