提交作业
以test01用户登录到lxcn01..04任一节点,并ssh到lx0110上
使用qsub命令行提交作业
下面是418号作业的输出
使用脚本提交作业 脚本内容如下:
提交作业及查看作业状态(要查看列详尽作业相关请执行 qstat -f job_id):
下面的为419号作业标准输出部分截图
作业提交脚本编写参考
其实质是shell脚本,只不过添加了一些PBS参数或设定而已 常用的PBS选项有:
选项 #PBS -N myJob #PBS nodes=4:ppn=2 #PBS -q queuename #PBS -l walltime=01:00:00 #PBS mypath/my.out #PBS mypath/my.err #PBS -j oe #PBS stagein=file_list -W -o -l 描述参考 指定作业名,默认为脚本名 指定作业资源,此处为四个节点每个节点2个虚拟处理器 绑定作业队列 每个作业运行时能使用的最大wall-clock time 指定作业标准输出文档及路径 -e 指定作业标准错误输文档及路径 标准输出与标准错误输出合流 在作业开始前把file_list复制到计算节点 #PBS -W stageout=file_list #PBS -m b #PBS -m e #PBS -m a #PBS -m ba #PBS -r n #PBS -V 在作业完成后把file_list复制到计算节点 在作业开始时给用户发送邮件 在作业结束时给用户发送邮件 在作业中断时给用户发送邮件 允许用户对在同一行上带有相同标志的命令进行分组,否则只有最后一个命令被 执行 指定在作业执行失败后不再重试 导入所有环境变量
这里要特别说明一下是的 #PBS -l,其格式与 qsub -l 是一样的,下面举例说明 ex1: qsub -l nodes=5
等价于脚本中的 #PBS -l nodes=5, 表示使用集群中任意五个节点来执行该作业 ex2: qsub -l nodes=2:server+14
等价于脚本中的 #PBS -l nodes=2:server+14, 表示使用集群中的两个server节点与另外十四个节点来执行该作业 ex3: qsub -l nodes=4:ppn=2
等价于脚本中的 #PBS -l nodes=4:ppn=2, 表示该作业需要四个节点且每个节点都有两个虚拟处理器空闲
ex4: qsub -l nodes=lx0111:ppn=4+lx0112:ppn=2
等价于脚本中的 #PBS -l nodes=lx0111:ppn=4+lx0112:ppn=2, 表示该作业需要lx0111上的四个空闲处理器与lx0112上的两个空闲处理器来共同完成 注:更详细用法请参照官方手册 常用命令
pbsnodes: 查看节点状态
相关参数有:
-a 列出所有结点及其属性,属性包括“state”和“properties” -o 将指定结点的状态标记为“offline”。这将帮助管理员暂时停止某些结点的服务 -l 以行的方式列出被标记的结点的状态,如 -l free,-l offline
-c 清除结点列表中的“offline”或“down”状态设置,使结点可以被分配给作业 -r 清除指定结点的“offline”状态
qsub: 作业提交,前面已有举例
qdel: 取消作业,指定相关作业的ID号即可,非结束态的作业才能被取消
qhold: 挂起作业
qrls: 取消挂起
qstat: 查看作业状态
qstat [-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 列出指定队列的信息 其中,有以下几种状态 C: 作业完成 E: 作业退出 H: 作业挂起中 Q: 作业排队中 R: 作业运行中 T: 作业被移走 W: 作业等待中 S: 作业中断
更多更详细内容:Do Not Touch!!!
通过队列资源控制实现对用户可用资源的控制
先建立一个队列test00并指定队列成员能使用的最大CPU核数为100,命令如下 qmgr -c 'create queue test00'
qmgr -c 'set queue test00 queue_type = Execution' qmgr -c 'set queue test00 resources_max.procct = 100' qmgr -c 'set queue test00 acl_group_enable = True' qmgr -c 'set queue test00 acl_groups = users' qmgr -c 'set queue test00 enabled = True' qmgr -c 'set queue test00 started = True'
队列创建好后,测试提交;测试脚本如下: [test01@lx0110 ~]$ cat test.pbs #PBS -N test00 #PBS -q test00
#PBS -l nodes=10:ppn=12
NP=`cat $PBS_NODEFILE | wc -l`
cd $PBS_O_WORKDIR
#cat $PBS_NODEFILE | uniq
echo Job started at `date`
sleep 20
echo Job finished at `date`
测试结果如下:
[test01@lx0110 ~]$ qsub test.pbs
qsub: Job exceeds queue resource limits MSG=cannot satisfy queue max procct requirement
因篇幅问题不能全部显示,请点此查看更多更全内容