PBS作业管理系统安装
杂七杂八
系统环境 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
再将 status
和 daemon
改为 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.service
改 LimitSTACK=infinity
;
在/etc/init.d/pbs_mom
加入 ulimit -s unlimited
等 -s、-n、-l三行。
这样基本能保证内存全部开放。
更改后重启服务即可。
THANKS
github-OpenPBS文档
Torque安装教程
小木虫论坛
计算化学公社