CentOS上的Torque配置
安装 Torque
注意:在以下设置中,无法在由NIS+NFS组成的系统节点之间执行MPI。不仅仅是单线程,并且仅限于节点内部的MPI并行使用。
这可能是由于MPI设置相关的不足,而不是torque设置。MPI环境搭建和基本命令整理- Qiita(2019/08/19)
CentOS 6:
CentOS 6 是一种操作系统。
首先,将单台计算机安装为自己的计算服务器并安装Torque来管理作业。操作系统为CentOS release 6.9 (Final)。
参考URL:安装TORQUE
故障排除
trqauthd无法启动
在安装过程中,如果不在/etc/hosts中写入IP地址和自身主机名,则在# service trqauthd start的位置会出现错误。
我可以使用qsub和qstat命令,但作业状态却保持在Q而无法执行:问题解决(2019/01/04)。
需要对以下TORQUE不提供的设置进行安装:
将$(TORQUE_SOURCE)/contrib/init.d/pbs_sched放置在/etc/init.d/中,并使用# service pbs_sched start命令启动pbs_sched守护进程。
CentOS 7 -> CentOS 7 版本
在一些网页上找到的
yum install -y epel-release
yum install -y torque-client torque-mom torque-server torque-scheduler
在我手上的CentOS 7.5.1804和7.3.1611上无法使用。
我根据对CentOS 6所做的步骤,应用到这些CentOS 7上。
我考虑的是在CentOS 7(实验室新建的服务器)上的环境中,按照在Qiita上写的torque安装的设置备忘录。
将Torque服务器安装到目标服务器上。
# 必要なライブラリをインストール
yum install openssl-devel libtool-devel libxml2-devel gcc gcc-c++
# ソースをgit cloneして、configureを作成
git clone https://github.com/adaptivecomputing/torque.git -b 5.0.3 ./torque-5.0.3
cd ./torque-5.0.3
./autogen.sh
# ビルド
./configure
make
make install
trqauthd守护进程的配置
cp contrib/init.d/trqauthd /etc/init.d/
chkconfig --add trqauthd
echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
ldconfig
service trqauthd start
把设置写入到/var/spool/torque/mom_priv/config中,例如。
$pbsserver hoge001 # hostname running pbs server
$logevent 225 # bitmap of which events to log
使用torque.setup脚本初始化severdb
./torque.setup root
将节点信息记录在`/var/spool/torque/server_priv/nodes`文件中(需要自己创建此文件)。例如
hoge001 np=12 properties1 properties2
hoge002 np=12 properties3
hoge003 np=12 properties4
pbs_server、pbs_mom、pbs_sched守护进程的设置:将其添加为常驻服务,自动启动并重新启动。
cp contrib/init.d/pbs_server contrib/init.d/pbs_mom contrib/init.d/pbs_sched /etc/init.d/
chkconfig --add pbs_server
chkconfig --add pbs_mom
chkconfig --add pbs_sched
service pbs_server restart
service pbs_mom start
service pbs_sched start
安装到 torque 客户端
# 必要なライブラリをインストール
yum install openssl-devel libtool-devel libxml2-devel gcc gcc-c++
# ソースをgit cloneして、configureを作成
git clone https://github.com/adaptivecomputing/torque.git -b 5.0.3 ./torque-5.0.3
cd ./torque-5.0.3
./autogen.sh
# ビルド hoge001をサーバーに
./configure --with-default-server=hoge001
make
make install
# trqauthd デーモンの設定
cp contrib/init.d/trqauthd /etc/init.d/
chkconfig --add trqauthd
echo /usr/local/lib > /etc/ld.so.conf.d/torque.conf
ldconfig
service trqauthd start
# pbs_mom デーモンの設定
cp contrib/init.d/pbs_mom /etc/init.d/
chkconfig --add pbs_mom
service pbs_mom start
故障排除
排队的作业不按照ID的顺序流动。
目前尚未解决的问题是,当存在两个需要相同计算资源的作业89.hoge001和90.hoge001时,计算流程将从90.hoge001开始。
优先事项未得到体现
qmgr -c "set queue highp priority=50"
在给highp队列设置了50的优先级后,用qmgr -c “p s”命令查看优先级确实变成了Priority = 50,但是即使通过#PBS -q highp指定了highp队列,用qstat -f命令查看优先级仍然是默认值0。不过,这个队列是可以执行的,用qstat -q命令可以看到它被识别了。
然而,观察作业的执行顺序,发现优先级为0的默认队列先于高优先级队列执行,因此很可能高优先级并没有从外部表现出来。
尝试重启pbs_server、pbs_mom、pbs_sched和trqauthd并没有解决问题。
随后发生停电,重新启动所有机箱,问题仍未解决。
截至2019/09/27,问题仍未解决。
如果将公钥认证设置为带有密码短语,那么无法接收输出和错误输出。
为了提高登录节点的安全性,我们尝试性地使用公钥认证来进行登录。公钥认证是为了提高安全性而设置了密码短语。
然后,自那之后,hoge.o1234和hoge.e1234就不再收到了。截至2019年11月29日仍未解决。
Torque 的配置文件和使用方法
# ノードの状況の確認(state=freeになっていれば使える)
pbsnodes -a
# ルートサーバーの名前
/var/spool/torque/server_name
#ぶら下がっているノードの情報
/var/spool/torque/server_priv/nodes
#ノードのconfiguration(よく理解していない)
/var/spool/torque/mom_priv/config
#キューの設定内容の確認
$ qmgr -c 'p s'
通过qmgr更改torque的行为。
# `qstat`で他のユーザーの使用状況を表示したい
qmgr -c "set server query_other_jobs = True"
# 投げられたジョブを出来るだけ同じ計算機に詰めたい:多くのコアが空いたノードが出来やすくなる
sudo qmgr -c 'set server node_pack=true'
# QNAMEという実行可能なキューを設定する
qmgr -c "create queue QNAMEh queue_type=execution"
# QNAMEで単一ユーザーが実行可能なjob数を3にする
qmgr -c "set queue QNAME max_user_run = 3"
# QNAMEで実行可能なjob数を3にする
qmgr -c "set queue QNAME max_running = 3"
# QNAMEで最長実行時間を72時間にする
qmgr -c "set queue QNAME resources_max.walltime = 72:00:00"
参考:4.1 队列配置
请参考
“扭矩(计算节点版)”
“扭矩(服务器版)”
扭矩用户手册:PDF注意
扭矩- ArchWiki