| 查看: 4155 | 回复: 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学习 |
» 猜你喜欢
【考研调剂】化学专业 281分,一志愿四川大学,诚心求调剂
已经有4人回复
317求调剂
已经有5人回复
0817 化学工程 299分求调剂 有科研经历 有二区文章
已经有10人回复
一志愿 西北大学 ,070300化学学硕,总分287,双非一本,求调剂。
已经有3人回复
一志愿福大288有机化学,求调剂
已经有3人回复
085600材料与化工求调剂
已经有6人回复
一志愿西安交通大学材料工程专业 282分求调剂
已经有6人回复
085600材料与化工调剂 324分
已经有10人回复
294求调剂材料与化工专硕
已经有11人回复
一志愿南昌大学,327分,材料与化工085600
已经有3人回复
2楼2013-11-07 16:26:22
3楼2013-11-07 18:05:10
4楼2013-11-07 22:13:28
5楼2013-11-08 00:57:03
6楼2013-11-08 23:06:02
7楼2013-11-08 23:07:09
8楼2013-11-09 15:06:19
9楼2013-11-09 23:19:01
10楼2015-12-02 19:15:06













回复此楼