PBS 作业管理系统

上一篇中我们非常简单地介绍了在 C 语言中嵌入 mpi4py 程序的方法。

前面我们所给出的各个例程一般都是在单台计算机上直接使用 mpiexec 或 mpirun 执行的,但是在实际应用中,对规模比较大的高性能计算任务,一般会提交到集群或超级计算机平台上进行计算。集群系统具有低成本、高性能的特性,提供了强大的批处理和并行计算能力,代表了高性能计算机发展的新方向。在集群或者超级计算机平台上,一般不能随意地直接以 mpiexec 或 mpirun 运行我们的并行计算程序,而必须通过其上提供的作业管理系统来提交计算任务。作为集群系统软件的重要组成部分,集群作业管理系统可以根据用户的需求,统一管理和调度集群的软硬件资源,保证用户作业公平合理地共享集群资源,提高系统利用率和吞吐率。下面我们将简要地介绍几个常用的集群作业管理系统:PBS,LSF 和 SLURM。下面我们首先简要介绍 PBS 作业管理系统。

PBS 简介

PBS (Protable Batch System) 作业管理系统会根据一个集群上的可用计算节点的计算资源管理和调度所有计算作业(无论是批处理作业还是交互式作业)。

PBS 常用命令

作业控制

  • qsub:提交作业
  • qdel:取消作业
  • qsig:给作业发送信号
  • qhold:挂起作业
  • qrls:释放挂起的作业
  • qrerun:重新运行作业
  • qmove:将作业移动到另一个队列
  • qalter: 更改作业资源属性

作业监测

  • qstat:显示作业状态
  • showq: 查看所有作业

节点状态

  • pbsnodes:列出集群中所有节点的状态和属性

PBS 作业属性

可以用两种方式设置 PBS 作业属性:

  • 通过命令行参数传递给 qsub 命令;
  • 在 PBS 脚本中以 #PBS 方式指定。

下表列出常用的 PBS 作业属性

属性 取值 说明
-l 以逗号分隔的资源列表 设定作业所需资源
-N 作业名称 设定作业名称
-o 文件路径 设定作业的标准输出文件路径
-e 文件路径 设定作业的标准错误文件路径
-p -1024 到 +1023 之间的整数 设定作业优先级,越大优先级越高
-q 队列名称 设定作业队列名称

比较常用的作业资源如下:

资源 取值 说明
nodes 节点资源构型 设定作业所需计算节点资源
walltime hh:mm:ss 设定作业所需的最大 wallclock 时间
cput hh:mm:ss 设定作业所需的最大 CPU 时间
mem 正整数,后面可跟 b,kb,mb,gb 设定作业所需的最大内存
ncpus 正整数 设定作业所需的 CPU 数目

可以用以下方法设定节点资源构型:

  1. 设定所需节点数:

    nodes=<num nodes>

  2. 设定所需节点数和每个节点上使用的处理器数目:

    nodes=<num nodes>:ppn=<num procs per node>

  3. 设定所用的节点:

    nodes=<list of node names separated by '+'>

PBS 环境变量

下表列出常用的 PBS 环境变量:

环境变量 说明
PBS_ENVIRONMENT 批处理作业为 PBS_BATCH,交互式作业为 PBS_INTERACTIVE
PBS_JOBID PBS 系统给作业分配的标识号
PBS_JOBNAME 用户指定的作业名称
PBS_NODEFILE 包含作业所用计算节点的文件名
PBS_QUEUE 作业所执行的队列名称
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 命令所在的绝对路径

提交批处理作业

用以下命令形式提交批处理作业:

$ qsub [options] <control script>

作业提交后一般会先排队等待,PBS 系统会根据作业的优先级和可用的计算资源来调度和执行作业。

PBS 脚本本质上是一个 Linux shell 脚本,在 PBS 脚本中可以用一种特殊形式的注释(#PBS)作为 PBS 指令以设定作业属性。下面是一个 PBS 脚本示例:

#!/bin/bash

# file: example.pbs

### set job name
#PBS -N example-job
### set output files
#PBS -o example.stdout
#PBS -e example.stderr
### set queue name
#PBS -q example-queue
### set number of nodes
#PBS -l nodes=2:ppn=4

# enter job's working directory
cd $PBS_O_WORKDIR

# get the number of processors
NP=`cat $PBS_NODEFILE | wc -l`

# run an example mpi4py job
mpirun -np $NP -machinefile $PBS_NODEFILE python example_mpi4py.py

用以下命令提交该作业:

$ qsub example.pbs

取消或停止作业

要取消或停止一个作业,需要得到该作业的作业标识号 <job ID >,可以通过 qstat 命令获得。

取消排队等待的作业

取消一个正在排队等待的作业,可用以下命令:

$ qdel <job ID >

停止正在运行的作业

要停止一个正在运行的作业,可用向其发送 KILL 信号:

$ qsig -s KILL <job ID>

交互式作业

交互式的计算作业通过类似于下面的命令使用:

$ qsub -I [options]

例如要求 2 台计算节点,运行在 example-queue 队列上的交互式作业,执行如下命令:

$ qsub -I -l nodes=2 -q example-queue

执行完以上命令,等 PBS 系统分配好资源后会进入所分配的第一台计算节点,可在其命令终端上执行交互式的计算任务,如要退出交互作业,可在终端输入 exit 命令,或使用按键 Ctrl+D。

以上简要介绍了 PBS 作业管理系统,在下一篇中我们将介绍 LSF 作业管理系统。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容