好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

PBS用户使用指南.docx

6页
  • 卖家[上传人]:ni****g
  • 文档编号:508277417
  • 上传时间:2023-01-21
  • 文档格式:DOCX
  • 文档大小:23.34KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • PBS 是公开源代码的作业管理系统,在此环境下运行,用户不需要指定程序在哪些节点上运 行,程序所需的硬件资源由PBS管理和分配1、PBS 命令PBS 提供用于作业管理的命令1) qsub 命令—用于提交作业脚本 命令格式:qsub [-a date_time] [-c interval] [-C directive_prefix][-e path] [-I] [-j join] [-k keep] [-l resource_list] [-m mail_options][-M user_list][-N name] [-o path] [-p priority] [-q destination] [-r c][-S path_list] [-u user_list][-v variable_list] [-V][-W additional_attributes] [-z] [script]参数说明:因为所采用的选项一般放在pbs脚本中提交,所以具体见PBS脚本选项 例: # qsub aaa.pbs 提交某作业,系统将产生一个作业号(2) qstat 命令—用于查询作业状态信息命令格式: qatat [-f][-a][-i] [-n][-s] [-R] [-Q][-q][-B][-u]参数说明:-f jobid 列出指定作业的信息-a 列出系统所有作业-i 列出不在运行的作业-n 列出分配给此作业的结点-s 列出队列管理员与scheduler所提供的建议-R 列出磁盘预留信息-Q 操作符是destination id,指明请求的是队列状态-q 列出队列状态,并以alternative形式显示-au userid 列出指定用户的所有作业-B 列出PBS Server信息-r 列出所有正在运行的作业-Qf queue 列出指定队列的信息-u 若操作符为作业号,则列出其状态。

      若操作符为destination id,则列出运行在其上的属于user_list中用户的 作业状态例: # qstat -f 211 查询作业号为211的作业的具体信息3) qdel 命令—用于删除已提交的作业命令格式: qdel [-W 间隔时间] 作业号命令行参数:例:# qdel -W 15 211 15 秒后删除作业号为 211的作业(4) qmgr 命令—用于队列管理qmgr -c "create queue batch queue_type=execution" qmgr -c "set queue batch started=true"qmgr -c "set queue batch enabled=true"qmgr -c "set queue batch resources_default.nodes=1"qmgr -c "set queue batch resources_default.walltime=3600" qmgr -c "set server default_queue=batch"2、PBS脚本文件PBS 脚本文件由脚本选项和运行脚本两部分组成1) PBS作业脚本选项(若无-C选项,则每项前面加'#PBS')-a date_time : date_time 格式为:[[[[CC]YY]MM]DD]hhmm[.SS]表示经过 date_time 时间后作业才可以运行。

      c interval : 定义作业的检查点间隔,如果机器不支持检查点,则忽略此选项C directive_prefix :在脚本文件中以 directive_prefix 开头的行解释为 qsub 的命令选项若无此选项,则默认为'#PBS')-e path :将标准错误信息重定向到 path-I :以交互方式运行-j join :将标准输出信息与标准错误信息合并到一个文件join中去k keep :定义在执行结点上保留标准输出和标准错误信息中的哪个文件keep为o表示保留前者,e表示后者,oe或eo表示二者都保留, n 表示皆不保留若忽略此选项,二者都不保留l resource_list : 定义资源列表以下为几个常用的资源种类cput=N :请求 N 秒的 CPU 时间; N 也可以是 hh:mm:ss 的形式mem=N[KIMIG][BIW]:请求 N {kilolmegalgiga}{byteslwords}大小的内存 nodes=N:ppn=M :请求N个结点,每个结点M个处理器mmail_optio-Muser_list-Nname-opath-ppriority-qdestination-ryln-Sshell-uuser_list5 : mail_option为a:作业abort时给用户发信;为b:作业开始运行发信;为e:作业结束运行时发信。

      若无此选项,默认为a 定义有关此作业的 mail 发给哪些用户 作业名,限15 个字符,首字符为字母,无空格 重定向标准输出到 path 任务优先级,整数, [-1024, 1023],若无定义则为0.: destination 有三种形式: queue , @server,queue@server 指明作业是否可运行, y 为可运行, n 为不可运行 定义作业将在运行结点上以哪个用户名来运行指明执行运行脚本所用的shel 1,须包含全路径v variable」ist :定义export到本作业的环境变量的扩展列表V :表明qsub命令的所有环境变量都export到此作业W additional_attributes : 作业的其它属性z :指明qsub命令提交作业后,不在终端显示作业号2)运行脚本同LINUX下一般的运行脚本文件[注]:脚本文件中的mpirun_rsh命令行中的节点列表文件要用环境变量表示 $PBS_NODEFILE,这个环境变量表示由pbs自动分配给作业的节点列表; 节点数为命令行中指定的进程数格式如下:mpirun_rsh -np 进程数-hostfile $PBS_NODEFILE 可执行程序名3、PBS 环境下运行示例(1)脚本文件编辑示例实例1 :运行mpi程序命令行:#vi aaa.pbs编辑的内容:#PBS -N myjob#PBS -o /home/jz/my.out#PBS -e /home/jz/my.err#PBS -l nodes=2:ppn=2cd 目录(你们原来直接在节点上运行时所在的目录)mpirun_rsh -np 4 -hostfile $PBS_NODEFILE /home/jz/helloworld解释:原先大家都是在中断输入mpirun_rsh..…这些命令执行程序的,现在只要把这些 提交命令放在.pbs配置文件的最后,由PBS来调度执行(自动分配节点和其它资源)。

      Myjob是为你此次要运行的程序起的任务名,可以改成你自己想要的名字 原先输出信息都是直接在屏幕上显示的,现在屏幕上的显示全部输出到文件中,上 例中输出文件是/home/jz/my.out文件,大家可以根据自己的需要修改(目录,文件名)程 序运行时遇到的一些错误会记录在.err文件中好处:因为对每个任务都设定了不同的输出文 件,所以看结果只要打开相应文件看就可以了,不需要开多个终端,而且里面有任务的详细 信息,比如实际分配的是哪些节点计算,运行时间等PBS -l nodes=2:ppn=2,你们程序需要几个节点只要修改nodes后的数字就可以了, ppn=2保持不变,因为我们的机器每个节点都是双cpu的mpirun_rsh -np 4 -hostfile $PBS_NODEFILE /home/jz/helloworld 此例中-np后的4是并行数(2X2=4个cpu),-hostfile $PBS_NODEFILE不需要改变 /home/jz/helloworld是你编译好的可执行文件名,需修改对于每个你要运行的mpi程序都需要这样一个.pbs配置文件也就是说大家原来的操作是:mpirun 现在改成2步走:1)写个pbs配置文件(比如xxx.pbs); 2)向pbs提交(qsubxxx.pbs) 实例2:运行非mpi程序有些用户并不是自己编写mpi程序,同样也可以用pbs提交。

      比如物理系运行程序时一般输入的命令是RunDMol3.sh TiFeCp2-pbe-dspp-m=1-opt ,那么 配置文件可以这样写:命令行:#vi job.pbs编辑的内容:#PBS -N physics_job#PBS -o /home/physics/physics _jo b.out#PBS -e /home/physics/physics _jo b.err#PBS -l nodes=1:ppn=2#PBS -r ycd目录(你们原来直接在节点上运行时所在的目录)RunDMol3.sh TiFeCp2-pbe-dspp-m=1-opt解释:也就是说把原来在终端直接输入的命令RunDMol3.sh TiFeCp2-pbe-dspp-m=1-opt 放到pbs配置文件中,因为你们只要一个节点,所以nodes=1,至于用哪个节点系统自动分 配,你们肯定很关心是分配了哪个节点给你们,那么可以用qstat命令查询(比如qstat -n)2) 提交作业示例命令行:#qsub aaa.pbs显示结果:[jEljiLiiiLtiagenode qaiiti aaa・pb;321L ・ iLuiLtiagenud已・ cluster ・吕已u・ edu・ cn(3) 作业状态查询示例Qstat后加不同参数可以查看不同的信息(各参数的意思,上面有详细的说明,你们可 以一个个试验一下,以后就知道查看哪些信息,需要哪些参数)实例:命令行:#qstat -a (查看作业的状态)显示结果:[jzBnanaijenode as carJ oh id Marne User TiiLa Use S Queue211 s n:±Fi:±genDde niyjob js OOs 00s Ou R batch解释:Job id 211是给你提交的任务分配的任务号,S (任务状态,R表示正在运行, Q表示正在排队等候调度)命令行:#qstat-n (查看作业使用的节点)显示结果:Lpiiys 1 csIJiLL^iagenoile pi^sics」S qstat- -niLL:zLtiagenude ・ cluster ・ seu. edu・ cn:Re H1 d Re q1 d ElapJob II:1 TJseEnaiLiz Queue Jobname SessID NI:1 S TSK IIclloey Tim亡 鬥 Time580 ・ in;王miLgEn□出已・ physics batch pliysics_jLi 4124 1 -- -- 144: U R --blade32/l+bladeS2/0 一解释:blade32就是分给你这个任务的节点命令行:#qstat -f 211 (查看有关作业运行具体信息)显示结果:[j sqstat -E 211Job Id: £11 ・mmagenodE・c 1U3匕已工・seu. edu・。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.