PBS (Portable Batch System) 作业管理系统会根据一个集群上的可用计算节点的计算资源管理和调度所有计算作业(无论是批处理作业还是交互式作业)
pbs任务脚本
脚本提交方式 qsub [script_name], script_name 是任务脚本的名称
pbs 任务脚本包括三部分
shell说明语句:用来说明用户使用的是哪种 shell,例如 #!/bin/sh说明用户需要使用 Bourne shell,如果用户没有指定,则默认为 Bourne shell
pbs指示语句:pbs 指示语句是用户用来请求任务运行时所需的资源或设置任务的一些属性的。以#PBS开头,如#PBS –N taskname 是用来设置任务名称的。pbs 指示语句是可选的,用户可以不用关心它如何写,系统会自动设置
pbs 指示句的一个主要作用是请求任务执行时所需要的系统资源,如 cpu 数目,存储容量,运行时间,运行优先级等等。以脚本方式提交的任务的资源请求是通过 pbs 指示语句,一般格式为 #PBS –l [选项=] [选项对应的值],如#PBS –l ncpus=5 表示请求 5 个cpu为之服务。
PBS常见命令
- qsub 提交作业
- qdel 取消作业
- qhold 挂起作业
- qrls 释放挂起的作业
- qrerun 重新运行作业
- qmove 将作业移动到另一个队列
- qalter 更改作业资源属性
- qstat 显示作业状态
- showq 查看所有作业
pbs作业脚本
PBS作业脚本本质上是一个shell脚本,注释行以“#”开头,pbs运行参数以“#PBS”开头。PBS作业脚本里可以直接调用shell命令和系统命令。脚本里运行参数说明如下表所示:
- 常用pbs作业属性
| 参数 | 取值 | 描述 |
|---|---|---|
| -l | nodes=1:ppn=5 | 计算资源,nodes是所需节点数,ppn是核心数,两数相乘为总数 |
| -N | 作业名称 | 设定作业名称 |
| -o | 文件路径 | 设定作业的标准输出路径 |
| -e | 文件路径 | 设定作业的错误文件路径 |
| -p | -1024到+1023之间的整数 | 设定作业优先级,越大优先级越高 |
| -q | 队列名称 | 设定作业队列名称 |
| -C | PBS命令提示符 | 设定以此值开头的行为目标PBS命令 |
- 常用pbs资源属性
| 参数 | 取值 | 描述 |
|---|---|---|
| walltime | hh:mm:ss | 设定作业所需的最大wallclock时间 |
| cput | hh:mm:ss | 设定作业所需的最大CPU时间 |
| mem | 正整数,后面可跟b, kb, mb, gb | 指定作业所需的最大内存 |
- pbs环境变量
| 参数 | 描述 |
|---|---|
| PBS_O_HOME | 执行qsub命令的HOME环境变量 |
| PBS_O_PATH | 执行qsub命令的PATH环境变量 |
| PBS_O_SHELL | 执行qsub命令的SHELL环境变量 |
| PBS_O_HOST | 执行qsub命令节点名称 |
| PBS_O_QUEUE | 提交的作业的最初队列名称 |
| PBS_O_WORKDIR | 执行qsub命令所在的绝对路径 |