PBS作业管理工具介绍

举报
踏雪寻梅2021 发表于 2021/06/07 16:45:38 2021/06/07
【摘要】 1、qsub提交任务脚本:qsub  任务文件;qsub -N test.vasp -l nodes=4:ppn=2 -q defaults 任务文件2、任务脚本文件:本质是shell命令脚本,注释以#开头,运行系统参数以#PBS开头串行任务脚本:并行任务脚本:其中变量说明如下:  3、任务作业状态查询:qstatqstat结果说明:E,退出;Q,排队;H,挂起;R,运行;C,结束4、任务作...

PBS作业管理


集群服务器能够发挥并行运算的能力,必须依靠资源管理软件,PBS就是这样的资源管理者。 每一个计算任务被定义为作业(Job),比如模拟计算或者数据分析。PBS提供了作业管理的 队列和批处理方式执行的环境。

在每一个HPC系统内,PBSMoab的作业调度程序一起合作。 PBSMoab提供作业的信息, 而Moab告诉PBS哪个任务在哪个计算节点上。

Job Limits

集群设置有四个可用队列: qgroup,qschool,qother,qsmp,其中qgroup,qschoolqother队列 可用节点为node1node32,分别对应组内、校内和校外用户,qsmp队列可用节点为胖节点node36。 系统管理员需告知用户在提交任务时必须指定所用队列。详细参数设置如下:

 

qgroup

qschool

qother

Max_user_Run

15

10

5

Max_Running

 

 

 

最长运行时间

72小时

48小时

24小时

作业调度相关的操作,比如新建、修改队列、控制队列优先级,将某个用户加入或移除某队列, 设置用户资源限制等,可通过曙光Gridview管理软件进行,在WEB浏览器地址栏中输入以下URL

http://202.204.124.129:8080/gridview_portal

出现登录界面后,使用root账户登入,在Gridview作业调度界面就可以进行相关管理和配置。 曙光Gridview集群管理软件的使用可以参考Gridview用户手册。

可以使用命令 qstat -q来得到 PBS队列的限定方式.

提交作业

有两种方式可以把计算作业提交给PBS队列,让PBS队列安排这些计算作业在集群服务器内的所有计算节点上运行。

  • 非交互式方式:这个是最常用的提交方式。首先做一个PBS的脚本,其内容包括所要求的资源,所需要的命令,然后使用qsub命令将这个脚本提交给PBS作业管理系统.
  • 交互式批处理方式: 可以在一个或者多个计算机节点上 得到一个交互式的运行终端.命令可以在这个交互式的终端内直接运行。交互式的非那个是 有助于程序调试或者运行一些较短的作业。
非交互式方式

运行一个非交互式的作业,需要2步:

  1. 建立一个PBS脚本

这个PBS脚本是标准的 Unix/Linux shell 脚本,在最开始的地方包含了一些看似额外的注解行。 这些注解行都是以#PBS开头,定义了PBS的一些指示符。最重要的一些PBS指示 参见下表:

#PBS -l walltime=HH:MM:SS

This directive specifies the maximum walltime (real time, not CPU time) that a job should take. If this limit is exceeded, PBS will stop the job. Keeping this limit close to the actual expected time of a job can allow a job to start more quickly than if the maximum walltime is always requested.

#PBS -l pmem=SIZEgb

This directive specifies the maximum amount of physical memory used by any process in the job. For example, if the job would run four processes and each would use up to 2 GB (gigabytes) of memory, then the directive would read #PBS -l pmem=2gb. The default for this directive on Lion-XF and Lion-LSP is 1 GB (gigabyte) of memory. Other Lion clusters do not currently set a default.

#PBS -l nodes=N:ppn=M

This specifies the number of nodes (nodes=N) and the number of processors per node (ppn=M) that the job should use. PBS treats a processor core as a processor, so a system with eight cores per compute node can have ppn=8 as its maximum ppn request. Note that unless a job has some inherent parallelism of its own through something like MPI or OpenMP, requesting more than a single processor on a single node is usually wasteful and can impact the job start time.

#PBS -q queuename

This specifies what PBS queue a job should be submitted to. This is only necessary if a user has access to a special queue. This option can and should be omitted for jobs being submitted to a system's default queue.

#PBS -j oe

Normally when a command runs it prints its output to the screen. This output is often normal output and error output. This directive tells PBS to put both normal output and error output into the same output file.

下面提供了一个PBS的脚本示例.

# This is a sample PBS script. It will request 1 processor on 1 node for 4 hours.
#   Request 1 processors on 1 node 
PBS -l nodes=1:ppn=1
#   Request 4 hours of walltime
PBS -l walltime=4:00:00
#   Request 1 gigabyte of memory per process
PBS -l pmem=1gb
#   Request that regular output and terminal output go to the same file
PBS -j oe
#   The following is the body of the script. By default, PBS scripts execute in your home directory, not the directory from which they were submitted. The following  line places you in the directory from which the job was submitted.
cd $PBS_O_WORKDIR
#   Now we want to run the program "hello".  "hello" is in the directory that this script is being submitted from, $PBS_O_WORKDIR.
echo " "
echo " "
echo "Job started on `hostname` at `date`"
./hello
echo " "
echo "Job Ended at `date`"
echo " "

注意上述的例程,是一个非并行接口的程序。如何在PBS脚本内定义一个并行接口程序(MPI),需要参照 MPI 软件的编程规范。

1、qsub提交任务脚本:

qsub  任务文件;

qsub -N test.vasp -l nodes=4:ppn=2 -q defaults 任务文件

脚本被提交到PBS系统后,会分配一个作业IDJob_ID); 利用这个ID可以操作这个作业(job)。

2、任务脚本文件:本质是shell命令脚本,注释以#开头,运行系统参数以#PBS开头

串行任务脚本:

并行任务脚本:

其中变量说明如下:  

3、任务作业状态查询:qstat,其参数选项是:

qstat

Shows the status of all PBS jobs. The time displayed is the CPU time used by the job.

qstat -s

Shows the status of all PBS jobs. The time displayed is the walltime used by the job.

qstat -u userid

Shows the status all PBS jobs submitted by the user userid. The time displayed is the walltime used by the job.

qstat -n

Shows the status all PBS jobs along with a list of compute nodes that the job is running on.

qstat -f jobid

Shows detailed information about the job jobid.

qstat结果状态说明:E,退出;Q,排队;H,挂起(user或者system级别的原因);R,运行;C,结束

具体来说结果格式说明如下:

  • Job id: 作业ID
  • Name: 作业脚本名称
  • User: 用户名
  • Time Use: 作业耗用的CPU time
  • S: 作业状态
  • Queue: 作业所属队列
  • Job id: the job's unique indentifier
  • Username: user that owns the job
  • Queue: the queue the job is in
  • Jobname: the name of the job
  • NDS: the number of compute nodes the job is using
  • Req'd Memory: the memory requested for the job
  • Req'd Time: the walltime requested for the job
  • S: the state of the job
  • Elap Time: the elapsed walltime for the job

4、任务作业一般操作:


删 除,

qdel Job_ID

删除作业IDJob_ID的任务.

qdel $(qselect -u username)

删除所有属于用户username的作业.

挂起,qhold 作业号;

取消,qrls 作业号;

更改作业队列, qmove high 作业号;

更改作业资源属性,qalter -l walltime=  作业号;

交换两作业排序,qorder 作业号1 作业号2;

5、脚本中运行参数补充:

当另一作业完成后运行,#PBS -W depend=after:作业号;

6、交互式批处理作业

    交互式批处理作业与非交互式的类似,都是用qsub来提交作业.提交一个交互式批处理作业不需要提供一个PBS脚本,所有的PBS指示都是用命令行参数的方式来指定. 提交一个交互式的PBS作业的命令如下所示:

    qsub -I ... pbs directives ...

    参数-I 告诉 qsub 该任务是一个交互式的作业。 下面的例子示意如何使用 qsub 来提交一个交互性的作业,这个作业需要使用1CPU1个节点的4个小时。

    node33:~$ qsub -I -l nodes=1:ppn=1 -l walltime=4:00:00
    qsub: waiting for job 1064159.node33 to start
    qsub: job 1064159.node33 ready
    node21:~$

    在这里有两点需要指出,
    1)首先当使用 -I参数来运行交互式作业的时候 qsub 命令不退出,它将一直等待作业开始,然后给出分配了该任务的计算节点提示符,如上例的node21.
    2)其次node21:~$表示命令可以执行了,他被分配到了node21计算节点上。





     

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。