博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
torque (以前的 OpenPBS) 安装
阅读量:4198 次
发布时间:2019-05-26

本文共 3791 字,大约阅读时间需要 12 分钟。

Torque(OpenPBS 的后继)是一个开源的资源管理系统,用于高性能计算集群的作业管理与调度,现在属于 AdaptiveComputing 公司,可到 http://www.adaptivecomputing.com/support/download-center/torque-download/ 下载。torque 由三个服务组成 pbs_server, pbs_mom, pbs_sched:
pbs_server 是资源管理系统的服务器
pbs_mom 是客户端资源监视器,负责监视各客户节点(计算节点)的资源使用情况
pbs_sched 是任务调度器(torque 自带的这个调度器功能比较简单有限,经常不用它而搭配更强大的 maui)
可见,pbs_server 和 pbs_sched 都要装在管理节点(服务器)上,而 pbs_mom 要装到每一个计算节点上(如果管理节点不用于计算,可以不装)
这里以 torque 3.0.6 的安装为例 (目前最新的版本是 4.1.2)。
1. 确保安装了 readline, tk/tcl, pam 的开发文件
   yum install readline-devel tk-devek tcl-devel  pam-devel
2. 解包,配置:   configure --enable-docs --with-rcp=scp  --enable-syslog  --enable-gui
   其实,至少对 3.0.6 版,docs, scp 和 gui 都是默认的,只是若没有 tk/tcl,则 gui 装不了,如果没有 readline-devel, readline 功能也装不上。
3. 编译,安装:    make  && make install
   需注意的是,这样只是在服务器端安装上了所有组件,但在计算节点上还要安装客户端,如果到每个机子上都编译一遍显然很麻烦,好在 torque 提供了多种解决方式,有三种:
   <1>. 如果源码是放在共享目录(如NFS)下,那么可以直接到计算节点上执行如下命令即可
        make install_mom install_clients    
   <2>. 可以在 make 编译完之后执行 make packages,他会生成如下6个安装包
        
torque-package-clients-linux-x86_64.sh
        torque-package-devel-linux-x86_64.sh
        torque-package-doc-linux-x86_64.sh
        torque-package-gui-linux-x86_64.sh
        
torque-package-mom-linux-x86_64.sh
        torque-package-server-linux-x86_64.sh
        可以把 clients 和 mom 对应的两个包传到每个计算节点上,然后运行如下命令安装
        torque-package-client-linux-x86_64.sh --install
        torque-package-mom-linux-x86_64.sh    --install
  <3>. configure 之后可以不 make,直接 make rpm,会在  ~/rpmbuild/RPMS/x86_64/ 下生成如下rpm安装包,对与服务器节点,可以都安装,对于客户端,应该只安装 torque-client 和 torque 就行了。
torque-3.0.6-1.cri.x86_64.rpm
torque-client-3.0.6-1.cri.x86_64.rpm
torque-debuginfo-3.0.6-1.cri.x86_64.rpm
torque-devel-3.0.6-1.cri.x86_64.rpm
torque-scheduler-3.0.6-1.cri.x86_64.rpm
torque-server-3.0.6-1.cri.x86_64.rpm
4. 其实 上面并没有完全安装完毕,因为如果不用 rpm 方式装的话,还需要手动把服务启动脚本放到 /etc/init.d 下, 服务启动脚本在 contrib/init.d 下。服务器端把 
contrib/init.d 下的 pbs_server, pbs_mom(视该节点是否作为计算节点而定), pbs_sched 拷到 /etc/init.d 下,并设置开机启动:
   chkconfig pbs_server on
   chkconfig pbs_sched on (如果确定使用 torque 自带的调度器就开启它)
   chkconfig pbs_mom on (如果服务器节点也做计算就开启它)
而在计算节点上,只需将 contrib/init.d/pbs_mom 拷到  /etc/init.d 下并
   chkconfig pbs_mom on
至此才算安装完毕。程序文件装在了 /usr/local 下,配置则文件位于 /var/spool/torque 下
下面说下简单的配置过程:
1. 在安装目录下运行如下命令,将 root 设为 TORQUE 的管理账户
   ./torque.setup root 
2. 服务器初始化
   pbs_server -t create    # 以初始化方式启动服务器,清除并重新生成
/var/spool/torque/server_priv 目录
   qterm      # 然后终止服务。这里只是为了初始化,配置好后再启动服务。
3. 配置 /var/spool/torque/server_priv/nodes 文件,指定哪些节点作为计算节点,比如
   n01 np=1
   n02 np=1
   n03 np=1
   每行代表一个节点,np 为该节点的cpu核数目,这里服务器n01也作为计算节点。
4. 配置好 nodes 后,启动 pbs_serverr 服务  /etc/init.d/pbs_server start 之后使用 qnodes 命令就可以显示有哪些节点可用了。不过此时所有节点的状态都还是 down 呢,因为相应计算节点上的 pbs_mom 服务还没启动呢。
5. 计算节点的配置,首先设定服务器,将服务器名称写入 /var/spool/torque/server_name 文件中,这里是 n01,不过这步一般已经在安装的时候就已经是这样了,检查一下即可。然后其他配置内容写入文件 /var/spool/torque/mom_priv/config,比如:
$pbsserver n01 # note: hostname running pbs server
$logevent 255 # bitmap of which events to log
$usecp n01:/home /home   # 指定使用 cp 而不是 rcp/scp 来复制文件的目录,一般针对nfs文件系统
$ideal_load  3  # 如果是四核节点,当 load average 小于3时状态变为 free
$max_load 3  # 如果是四核节点,当 load average 大于3时状态变为 busy
# load average 可用 uptime 命令查看,表示系统负载情况,一般N个物理核的系统满负载为N。
其他配置参数可参见使用手册。然后启动 pbs_mom 服务,再运行 qnodes 的话则可以看出三个节点状态都是 free 了。
6.  然后就可以创建一个队列了,比如叫 myqueue,进入 qmgr 交互界面,如下设置
create queue myqueue queue type=execution
set server default queue=myqueue
set queue myqueue started=true
set queue myqueue enabled=true
set server scheduling=true
   然后可以提交一个命令试试看了,注意,要用普通用户提交命令,比如
     echo 'sleep 30' | qsub
   然后 qstat 查看,就能看到这个任务了,只是一直在排队,没有运行,什么原因?
7. 原来是没有启动调度器 pbs_sched,没有调度,当然一直排队傻等了。开启 pbs_sched 后,再提交就会运行了。但发现只有服务器节点 n01 能提交任务,其他的则不行。如果需要在 n02 上提交任务,需要如下设置
   qmtr -c 'set server submit_hosts +=n02'
不过,到目前为止还有一个奇怪的地方,就是使用 qstat 查看任务状态时,普通用户在任何节点上都能看,而 root 却只能在服务器节点上查看,如果 root 在计算节点上运行 qstat,没有任何输出,不知什么原因,难道是 bug?
另外:
1. 如果修改了 /var/spool/torque/mom_priv/config 的设置,要重启 pbs_mom 服务才有效。
2. 如果重启了 pbs_server,那么各节点上要重启 pbs_mom 才能正常工作。

转载地址:http://niuli.baihongyu.com/

你可能感兴趣的文章
2011-1-2----------mage:getModuleDir函数的分析!!--------得到模块的地址
查看>>
2010-1-3------mage_core_model_config------------construct过程----------------个人分析
查看>>
2011-1-3----mage_core_model_config---------init()方法加载过程---个人分析
查看>>
JDK里的设计模式
查看>>
2011-1-4-----核心模型---mage_core_model_cache---construct方法--个人分析
查看>>
2011-1-4----mage_core_model_layout--construct方法--个人分析
查看>>
学做程序经理--转
查看>>
国外主流PHP框架比较
查看>>
css中cursor属性详解
查看>>
JDK里的设计模式
查看>>
相关产品设置插件
查看>>
深入理解Magento – 第一章 – Magento强大的配置系统
查看>>
深入理解Magento – 第二章 – Magento请求分发与控制器
查看>>
深入理解Magento – 第三章 – Magento的布局(Layout),块(Block)和模板(Template).doc
查看>>
joomla
查看>>
magento ----使用magento内部机制建立数据库表
查看>>
深入理解Magento – 第四章 – 模型和ORM基础.doc
查看>>
深入理解Magento – 第五章 – Magento资源配置.doc
查看>>
深入理解Magento – 第六章 – 高级Magento模型.doc
查看>>
model--resourceModel---collection 初始化
查看>>