linux多节点下安装Torque

一、关于PBS

1.  PBS介绍

       PBS是功能齐全、历史悠久、支持广泛的本地集群调度器。 PBS的目前包括openPBS,PBS Pro和Torque三个主要分支。 其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发,PBS pro是PBS的商业版本,功能最为丰富。Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本。应用PBS提交任务则会形成任务队列,依次执行,有效分配资源,避免资源竞争。否则CPU时间片会轮流分配给各个人的任务,从而影响所有人的正常作业。

       torque 由三个服务组成:
       pbs_server:资源管理系统的服务器
       pbs_mom: 客户端资源监视器,负责监视各客户节点(计算节点)的资源使用情况
       pbs_sched :任务调度器(自带的这个调度器功能比较简单有限,经常不用它而搭配更强大的 maui)
      pbs_server 和 pbs_sched 都要装在管理节点(服务器)上,而 pbs_mom 要装到每一个计算节点上(如果管理节点不用于计算,可以不装)

2.  软硬件准备

机器准备:

        3个节点(dellnode1、dellnode2、dellnode3)

        dellnode1:管理节点、计算节点(安装pbs_server、pbs_sched、pbs_mom)

        dellnode2:计算节点(安装pbs_mom)

        dellnode3:计算节点(安装pbs_mom)

操作系统:

        Centos 6.5 64位

二、系统配置

       由于本次配置是在上篇中多节点mpi环境搭建下配置的,其用户建立、hosts配置、ip、无密登录等见上文(https://my.oschina.net/zctzl/blog/1560593

        注意:在计算节点上要有非root用户,且和管理节点要提交作业的用户一致,保持UID和GID相同,因为torque调度不允许root用户,在各节点上建立相同用户名及uid帐号。(本次配置3个节点的用户都为mpiuser,且UID和GID都相同)

三、安装torque

1.从官网下载压缩文件

(下载地址:http://www.adaptivecomputing.com/support/download-center/torque-download/

194814_6NlF_2812815.png

2.管理节点(dellnode1)的安装配置

       管理节点使用编译安装的方式

    (注:程序文件安装在了 /usr/local/torque 下,配置则文件位于/var/spool/torque下)

       安装部分

tar -zxvf torque-6.1.1.1.tar.gz #将上传的压缩包解压

        安装torque依赖的其他相关库和编译器等环境

sudo yum install -y libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool

         进入解压目录,配置安装信息

cd torque-6.1.1.1
# --prefix指定安装路径,--with-default-server指定默认管理节点(不指定也会默认dellnode1)
./configure --prefix=/usr/local/torque --with-default-server=dellnode1
# 若提示缺少某库或编译器,直接使用yum安装即可,然后再次运行改命令

        配置完成后,会显示相关配置信息,并提示 “Ready for 'make' ”,表示需要的相关环境已满足,可以进行编译

        编译、安装、打包

make
sudo make install #此步骤需要管理员权限
make packages #生成后面安装计算节时需要的文件,会生成5个可执行脚本文件

        配置部分

        配置环境变量,所有用户在/etc/profile里配置,当前用户在~/.bashrc里配置

vim ~/.bashrc #添加下图所示内容

201037_JpSb_2812815.png

source ~/.bashrc #使其生效

        把服务启动脚本pbs_server、pbs_mom、pbs_sched、trqauthd复制到 /etc/init.d 下,并设置开机启动。

#服务启动脚本在解压目录下的contrib/init.d下。
sudo cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/
sudo chkconfig --add pbs_server
sudo chkconfig --add pbs_sched
sudo chkconfig --add pbs_mom
sudo chkconfig --add trqauthd

        初始化,设置TORQUE的管理用户,pbs_server 不要启动起来,否则 ./torque.setup root 无法完成

sudo ./torque.setup mpiuser #设置mpiuser用户为管理用户
#torque.setup脚本是通过调用pbs_server –t指令来初始化serverdb,附加的帐号将被指定为TORQUE的进程管理员和执行者。

        配置 /var/spool/torque/server_priv/nodes 文件,指定哪些节点作为计算节点,若管理节点不参与计算则去掉dellnode1

vim /var/spool/torque/server_priv/nodes #前面为节点名 后面为cpu核数

202532_VGIZ_2812815.png

        创建/var/spool/torque/mom_priv/config文件

vim /var/spool/torque/mom_priv/config #内容如下图,指定管理节点为dellnode1

204004_JAyY_2812815.png

        确保/var/spool/torque下的目录spool和undelivered的权限为777(默认就是777)

        开启/重启服务,再此之前可以先用qterm命令关闭服务

sudo service pbs_server start 
#pbs_server是TORQUE集群中head node的核心守护进程,用于接收用户提交的作业请求,根据pbs_sched进程提供的可用节点资源清单进行作业分发和回收
sudo service pbs_sched start
#pbs_sched是TORQUE集群中head node的另外一个核心守护进程,用于监控compute node的运行状态,根据pbs_server传递过来的用户作业脚本要求在集群中寻找可用计算节点并反馈给pbs_server进程
sudo service pbs_mom start
sudo service trqauthd start
#trqauthd是TORQUE集群head node和compute node都需要运行的守护进程,用于授权pbs_mom进程与pbs_server进程之间建立互信连接

        可以使用下面命令查询服务或进程状态

#服务状态查询
/etc/init.d/pbs_server status  
/etc/init.d/pbs_sched status  
/etc/init.d/pbs_mom status  
/etc/init.d/trqauthd status
#相关进程查询
ps -e | grep pbs #显示pbs_server、pbs_sched、pbs_mom进程
ps -e | grep trqauthd #显示trqauthd进程

         可以在所有配置完成后们可以重启所有相关服务,以确保更改有效

sudo /etc/init.d/pbs_server restart
sudo /etc/init.d/pbs_sched restart
sudo /etc/init.d/pbs_mom restart
sudo /etc/init.d/trqauthd restart

        使用qnodes命令查看各节点状态,不过此时除了dellnode1,其他2个节点的状态都还是 down ,因为相应计算节点上的 pbs_mom 服务还没启动。

qnodes

3.计算节点的安装配置

        安装方法

        ①如果源码是放在共享目录(如NFS)下,那么可以直接到计算节点上执行如下命令即可

make install_mom install_clients

        ②可以在 make 编译完之后执行 make packages,他会生成如下5个安装包

205041_IMWr_2812815.png

        把 clients 和 mom 对应的两个包传到每个计算节点上进行安装

        如果客户端不同,则不能直接使用那两个脚本,而需要在客户端执行:解压、 ./configure、make

        ③configure 之后可以不 make,直接 make rpm,会在  ~/rpmbuild/RPMS/x86_64/ 下生成如下rpm安装包,对于服务器节点,可以都安装,对于客户端,只安装 torque-client 和 torque 就行了。

        这里我们选择第二种方法(下面以dellnode2为例,dellnode3操作与其相同)

cd ~/torque-6.1.1.1 #进入解压目录
scp torque-package-clients-linux-x86_64.sh mpiuser@dellnode2:~/
scp torque-package-mom-linux-x86_64.sh mpiuser@dellnode2:~/
ssh dellnode2 #登录到dellnode2进行安装
sudo ./torque-package-clients-linux-x86_64.sh --install
sudo ./torque-package-mom-linux-x86_64.sh --install

        配置

        配置环境变量,和管理节点一样

        将管理节点解压目录下的contrib/init.d下的pbs_mom、trqauthd复制到各计算节点  并设置为系统服务

cd /home/mpiuser/torque-6.1.1.1/contrib/init.d #具体视自己的解压目录而定
scp pbs_mom trqauthd mpiuser@dellnode2:~/
ssh dellnode2 #登录到dellnode2进行配置
sudo cp pbs_mom trqauthd /etc/init.d
chkconfig --add pbs_mom
chkconfig --add trqauthd

        确保/var/spool/torque目录下的servern_name文件内容为管理节点名(默认是)

cat var/spool/torque/server_name  #看输出是否为dellnode1

         创建/var/spool/torque/mom_priv/config文件

vim /var/spool/torque/mom_priv/config #内容如下图,指定管理节点为dellnode1

210258_xmTq_2812815.png

        启动服务

sudo /etc/init.d/pbs_mom start
sudo /etc/init.d/trqauthd start

        至此,dellnode2配置完成,再对dellnode3进行同样的操作

        进入到管理节点输入qnode即可发现所有节点的状态都为free

​​​​​​

三、测试

        在共享目录/mpiShareDir下运行mpi测试程序

        将mpi解压包目录下的例子复制到该文件夹下

cp /home/mpiuser/mpich-3.2.1/examples/cpi /mpiShareDir

        编写pbs脚本

    (PBS命令及脚本文件书写http://blog.csdn.net/qianyun6/article/details/4871343

                                        http://blog.csdn.net/ztq157677114/article/details/51718662

vim a.pbs

        输入以下内容

211926_FCuN_2812815.png

        提交任务

qsub a.pbs

        可以使用”qstat -a”和“qstat -q”查看任务或队列情况

    (PBS队列配置http://blog.sina.com.cn/s/blog_403aa80a0101bjjg.html

        结果会输出到pi.out文件下,运行效果如下图所示

        问题:虽然有3个计算节点可以使用,但是实际发现每次程序总是只在一个节点上运行,开始我以为是配置有问题导致程序只能在管理节点上运行,后来经过修改/var/spool/torque/server_priv/nodes文件,将dellnode1删除,并重启dellnode1的pbs_server和pbs_sched服务后,发现任务可以提交到dellnode2或dellnode3(需要将nodes文件里的dellnode2也删除)上运行,所以服务配配置应该是没有问题的,猜想可能是提交任务的命令的参数或队列的属性之类的没有设置好。

参考教程:

    http://blog.csdn.net/u012460749/article/details/78583026

    http://goodluck1982.blog.sohu.com/242717652.html

    http://blog.csdn.net/secondjanuary/article/details/9281897

    http://www.360doc.com/content/17/0511/10/25694179_652928275.shtml

 

转载于:https://my.oschina.net/zctzl/blog/1580071

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值