24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3943  |  回复: 9
【奖励】 本帖被评价3次,作者刘仕晨增加金币 2.2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

刘仕晨

木虫 (正式写手)


[资源] 作业管理系统Torque 2.4.16在Linuxmint 13 / Ubuntu12.04工作站/单机上的安装和使用

小弟前段时间在纠结如何在自己的工作站上安装PBS任务管理软件,因为如果是自己写脚本投,普通任何还可以,如果需要连续投好几个任务那还是相当麻烦的,就想起了集群的PBS,但是自己捣鼓了好久都没搞定,后来自己的同学在网上找到了这篇教程,成功了,拿出来和大家分享,如果大家刚好需要,可以省去很多麻烦。
       我自己的系统:linuxmint14 一共装了1台工作站(E5-2440*2)2台普通台式机(i7-3770)一台虚拟机(vmware)都成功了,没有出现问题:
       教程原链接:http://hi.baidu.com/xijunw/item/9a4e823959240af62684f426
  
正文:(原文这里有一张图片,但是因为不影响下面的教程,所以我就不贴了

注意:(自己安装的时候出现的问题,所以一定要注意几个地方)

1.计算节点教程是calnode1,千万不要写成calnodes1

2.下面的教程修正了原文中的一处标点错误,如果参考原文,需要自行修改;

       Torque是作业队列管理系统,其前身是openPBS,但后来openPBS的那帮人开公司做商业PBS赚钱去了,openPBS改为Torque继续为开源社区维护。

关于Torque的安装,网上的教程很多。但是,这些教程大多是针对cluster集群的,有的是torque不同版本不同平台的,所以给出的设置各不相同。一旦你按照一个不合适的教程去操作,就会导致诸如找不到服务器无法安装,或者安装后作业提交了不能运行,或者能提交作业但立即结束退出,或者作业能正常运行但不给出o文件等各种问题。针对各种问题的解决方案更是千奇百怪,让人云里雾里,无所适从。

不幸的是,上面提到的问题我全部遇到了。各种国内外网站给出的解决方案几乎都折腾遍,才逐渐意识到,安装Torque,必须搞清Torque的三个部分,pbs_server, pbs_mom, pbs_sched, 它们之间的关系和通信机制的关键。这一部分推荐去百度或道客上搜几篇关于“作业调度系统PBS”介绍的ppt看看。简单说,
pbs_server是领导,坐在总部服务器上负责接收任务,
pbs_sched是经理,负责把工作排序并分配下去,
pbs_mom是民工,在各个计算节点辛苦工作,并把情况汇报给总部。

三个部分的配置有2个关键,
关键设置A,你必须告诉server和sched每个节点的名字和核的数量,以便它们分配任务;
关键设置B,是你必须告诉mom哪个节点是服务器节点,以便其向总部汇报工作进展。

具体来所,两个关键设置涉及如下操作:(配置均在torque默认安装目录下:/var/spool/torque)
关键设置A: 创建或修改server_priv/nodes文件,列出计算节点名称和核心数;
关键设置B: 创建或修改mom_priv/config文件列出主节点ip;创建server_name文件,列出主节点hostname

对于工作站来说,和cluster集群的唯一区别是它只有一个计算节点,也就是其服务节点,通常本机IP和主机名默认分别为127.0.0.1和torqueserver。 但是你要再给它设置一个别名,比如calnode1,作为计算节点的名称。如上面图所示。这里搞不清,很容易出错。

好了,明白了以上关键部分,下面就简单了。在我的4核linuxmint工作站下,使用软件源安装的安装流程如下:
1. 修改/etc/hosts第一行,使其为“127.0.0.1 localhost yourhostname torqueserver calnode1” (root权限)
$ echo $HOSTNAME   //  find the hostname
xxxxx                       //  write this hostname into /etc/hosts
$ sudo vi /etc/hosts
127.0.0.1 localhost xxxxx torqueserver calnode1
# 127.0.1.1  somename   // 这一行要comment掉
后面有一些ipv6的东西,无需动。

2. 安装torque的7个相关包
$ sudo apt-get install torque-common libtorque2 libtorque2-dev torque-server torque-scheduler torque-mom torque-client
安装完成后server, sched会自动启动

3. 初始化
$ sudo qterm  // 先终止服务
$ sudo bash /usr/share/doc/torque-common/torque.setup $USER torqueserver  // 建立默认服务器和队列,并把自己列为管理员
$ qmgr -c 'print server'  // 查看默认配置的服务和队列
#
# Create queues and set their attributes.
#
#
# Create and define queue batch
#
create queue batch
set queue batch queue_type = Execution
set queue batch resources_default.nodes = 1
set queue batch resources_default.walltime = 01:00:00
set queue batch enabled = True
set queue batch started = True
#
# Set server attributes.
#
set server scheduling = True
set server acl_hosts = torqueserver
set server default_queue = batch
set server log_events = 511
set server mail_from = adm
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6
set server mom_job_sync = True
set server keep_completed = 300  // 作业完成后会等待300秒才消失,这里需要改成1,见本文附录。

4. 设置服务节点
(1) 创建server_name文件,指明服务节点的名称为torqueserver
$ sudo echo "torqueserver" > /var/spool/torque/server_name  // 此文件应该是默认已经自动生成的

(2) 添加计算节点
创建server_priv/nodes文件,指定利用名为calnode的节点的4个核做计算
$ sudo echo "calnode1 np=4" > /var/spool/torque/server_priv/nodes

5. 去计算节点配置。 由于我们是工作站,所以实际上就只是在本机上操作
创建mom_priv/config文件,告诉mom向IP为127.0.0.1的服务节点汇报
$ sudo echo "$pbs_server = 127.0.0.1" > /var/spool/torque/mom_priv/config

6. 结束配置,重启服务
先启动计算节点服务:
$ sudo pbs_mom   
然后是服务节点
$ sudo qterm -t quick  // 或者 $ sudo killall -r "pbs_*"
$ sudo pbs_server  // 启动server
$ pbsnodes -a   // 查看所有计算节点,free为正常

7. 配置服务的开机启动
$ sudo vi /etc/rc.local 增加三列分别是pbs_server pbs_sched pbs_mom

8. 测试
$ echo 'sleep 20' | qsub

9. 出错后根据作业号追查作业详情
$ tracejob xx

典型作业提交脚本:
#!/bin/bash
#PBS -N test                 // job list显示的作业名称。通常无需指定,将显示脚本文件名
#PBS -l ncpus=2           // 用2个核
#PBS -l walltime=24:00:00  // 运行时间,通常在自己的工作站上无需指定
#PBS -j oe                    // 合并o文件和e文件为o文件,这个很有用
#PBS -q batch             // 交到batch队列,一般无需指定
#PBS -V                    // 使用.bashrc中设置的环境变量,非常重要

cd $PBS_O_WORKDIR     // 进入脚本提交的目录为工作目录,这一行很重要。
g09  input.gjf output.log      // 作业行

附: 修改服务和队列的常用命令
(1) 创建与修改作业队列batch
$ sudo qmgr -c 'create queue batch'  // 创建名为batch的队列
$ sudo qmgr -c 'set queue batch queue_type = Execution'  // 类型为计算
$ sudo qmgr -c 'set queue batch enabled = True'  // 激活
$ sudo qmgr -c 'set queue batch started = True'  // 开启
$ sudo qmgr -c 'set queue batch resources_default.walltime = 900:00:00'  // 最长运行时间900小时
$ sudo qmgr -c 'set queue batch resources_default.ncpus = 1'  // 默认只用1核
$ sudo qmgr -c 'set queue batch resources_default.nodes = 1'  // 默认使用1个节点
$ sudo qmgr -c 'set queue batch resources_default.nodect = 1'  // 只放开1个节点
$ sudo qmgr -c 'set queue batch resources_max.ncpus = 4'  // 最多使用4核
$ sudo qmgr -c 'set queue batch resources_min.ncpus = 1'
$ sudo qmgr -c 'set queue batch resources_max.nodes = 1'  // 只有1个节点
$ sudo qmgr -c 'set queue batch max_running = 2'  // 最多同时运行2个作业

(2) 配置与修改服务器server
$ sudo qmgr -c 'set server scheduling = True'  //  启动排队管理
$ sudo qmgr -c 'set server default_queue = batch'  //  定义默认队列
$ sudo qmgr -c 'set server allow_node_submit = True'  // 允许向服务节点提交作业,这个必须设置
$ sudo qmgr -c 'set server query_other_jobs = True'  //  
$ sudo qmgr -c 'set server acl_host_enable = True'
$ sudo qmgr -c 'set server acl_hosts = calnode1'

1. 关于Unauthorized request问题:
可能是忘了使用管理员权限操作;也可能是操作顺序不对,配置冲突。可杀掉所有pbs_*服务,再开启。不行重启主机。
2. o文件中的“Command not found”
很多软件的运行环境是在.bashrc中设置,但是torque在qsub时默认并不执行.bashrc,就会导致作业提交后立即结束,o文件显示command not found。解决此问题只需在作业脚本中增加一行 #PBS -V

Job Checkpoint and Restart
Create a checkpoint and stop: $ qhold
Reboot server and restart job from the checkpoint: $ qrerun
http://www.clusterresources.com/ ... jobcheckpoint.shtml
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluewhale

铁杆木虫 (正式写手)


★★★ 三星级,支持鼓励

如果节点多了以后,用maui替换pbs_sched.
3楼2013-11-07 18:05:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

刘仕晨

木虫 (正式写手)


忘了说了,这次买了服务器才知道,之前台式机一直开着超线程跑任务,装了PBS才发现,超线程会拖慢vasp,然后去我们组里的集群上看了下,所有的节点都是关闭了超线程和虚拟化,打开了睿频。我也联系了IBM的工程师,确实是这样的,所以如果还有不知道的同学,如果机器仅仅是装了vasp,来跑任务,建议关闭超线程和虚拟化。如果机器是双系统,还有一些其他任务,那么久不要关闭了,但是在跑任务的时候使用的核数要等于你的物理核心数,而不是你的线程数,也就是CPU利用率50%,当然集群就不用担心了,因为工程师肯定就帮你弄好的,所有的这些都是针对自己的单机或者工作站。和大家共享。
2楼2013-11-07 16:26:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fshadow

木虫 (小有名气)


★★★★★ 五星级,优秀推荐

有空在我实验室的一台服务器上试试
5楼2013-11-08 00:57:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

刘仕晨

木虫 (正式写手)


引用回帖:
3楼: Originally posted by bluewhale at 2013-11-07 18:05:10
如果节点多了以后,用maui替换pbs_sched.

如果是多节点集群的话,好像配置的方法不大一样,然后maui这个软件,求共享,这个软件我当时找了好久都找不到,后来反正是单机,就算了。
6楼2013-11-08 23:06:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见