PBS作业管理系统安装

发布时间 2023-10-09 09:39:47作者: chy_2003

杂七杂八

系统环境 Ubuntu20.04,目标 pbs + vasp + vaspkit 服务器。

本来打算用源码安装OpenPBS,pbs_mom和pbs_sched都能运行,但pbs_server始终无法启动。重新编译了三遍也不能解决问题,最终采用torque-pbs。

由于辗转过OpenPBS和torque,已经无法分清前置依赖的需要与否。所以本文前置依赖部分可能有冗余。

安装前置依赖

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc make libtool libhwloc-dev libx11-dev libxt-dev libedit-dev libical-dev ncurses-dev perl postgresql-server-dev-all postgresql-contrib python3-dev tcl-dev tk-dev swig libexpat-dev libssl-dev libxext-dev libxft-dev autoconf automake g++ expat libedit2 postgresql python3 postgresql-contrib sendmail-bin tcl tk libical3 postgresql-server-dev-all libxml2-dev zlib1g-dev libboost-all-dev libssl-dev -y

下载文件

笔者使用6.1.2版本

http://wpfilebase.s3.amazonaws.com/torque/torque-6.1.2.tar.gz

更改ip为non-loop

首先

ifconfig

查看本机ip,以192.168.10.100为例。

hostname

查看本机名称,以chy_desktop为例。

sudo vim /etc/hosts

打开hosts文件,将127.0.1.1注释掉,并加上 192.168.10.100 chy-desktop ,最终类似:

127.0.0.1 localhost
#127.0.1.1 localhost
192.168.10.100 chy-desktop

开始安装

进入安装包所在的文件夹。解压

tar -zxvf torque-6.1.2.tar.gz
cd torque-6.1.2

配置环境

./configure --prefix=/opt/torque/6.1.2 --with-scp --with-default-server=chy-desktop --disable-gcc-warnings

注意将chy-desktop改成正确的主机名称

改下代码以防之后报错:

vim src/lib/Libattr/req.cpp

将第1057行改为双引号

else if (current != "\0")

最后安装运行:

make -j64 CFLAGS='-fpermissive'
sudo make install
sudo make packages

sudo cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/
sudo cp contrib/systemd/{pbs_{server,sched,mom},trqauthd}.service /etc/systemd/system/

Torque环境

sudo su 
TORQUE=/opt/torque/6.1.2
echo "TORQUE=$TORQUE" >> /etc/profile
echo "export PATH=\$PATH:$TORQUE/bin:$TORQUE/sbin" >> /etc/profile
source /etc/profile
exit 
vim ./torque.setup

将第一行改为

#!/bin/bash

Setup一下

sudo ./torque.setup chy-desktop

注意更改主机名。

再关掉

ps -e | grep trqauthd
ps -e | grep pbs

kill掉找到的进程

魔改一下

sudo vim /etc/init.d/pbs_sched

. /etc/rc.d/init.d/functions

改为

. /lib/lsb/init-functions

再将 statusdaemon 改为 start_daemon

启动服务

sudo service trqauthd start
sudo service pbs_server start
sudo service pbs_mom start
sudo service pbs_sched start
ps -e | grep pbs

此时应能看到 pbs_server, pbs_sched, pbs_mom 三个线程。

相关设置

sudo vim /var/spool/torque/server_priv/nodes

如果文件为空,则新建。将第一行变为

chy-desktop np=72

注意将计算机名和cpu核心数改为对应的参数。cpu核心数可以通过lscpu查看(下标从0开始)。

注意要加np=,直接写72的话,pbsnodes会显示 node=1, properties=72,并且提交pbs任务时只能ppn=1。

sudo vim /var/spool/torque/mom_priv/config

添加

pbsserver chy-desktop
logevent 255

注意更改对应的计算机名称。

最后restart服务

sudo service trqauthd restart
sudo service pbs_server restart
sudo service pbs_mom restart
sudo service pbs_sched restart

测试

qstat -B
echo sleep 60 | qsub

如果以上设置成功,则不会报错。

设置开启启动

sudo vim  /lib/systemd/system/rc-local.service

在文末加入

[Install]
WantedBy=multi-user.target  
Alias=rc-local.service

可能遇到的问题以及更多的设置

如果进程被杀死,查看文件夹下的 .e[任务编号] 文件,并拉到最后,可能是因为超过了 walltime 被pbs杀死而不是运行错误。

需要在提交pbs任务时,在.pbs文件内添加

#PBS -l walltime=2400:00:00

可以把2400改为更大的数字。

在.pbs文件内添加

ulimit -s unlimit
ulimit -n unlimit
ulimit -l unlimit

来解除系统的限制。若有 Operation not permitted 导致更改失败,则:

/etc/systemd/user.conf/etc/systemd/system.conf中的DefaultLimitSTACK=后加上infinity
/usr/lib/systemd/system/pbs_mom.serviceLimitSTACK=infinity
/etc/init.d/pbs_mom 加入 ulimit -s unlimited 等 -s、-n、-l三行。
这样基本能保证内存全部开放。

更改后重启服务即可。

THANKS

github-OpenPBS文档
Torque安装教程
小木虫论坛
计算化学公社