| 查看: 3946 | 回复: 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 |
» 收录本帖的淘帖专辑推荐
VASP and MS | 好贴 | Linux学习 |
» 猜你喜欢
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有6人回复
孩子确诊有中度注意力缺陷
已经有14人回复
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
10楼2015-12-02 19:15:06
2楼2013-11-07 16:26:22
3楼2013-11-07 18:05:10
5楼2013-11-08 00:57:03













回复此楼