PBS 脚本及 运行

本文涉及:

  • PBS 命令
  • Shell 命令
  • Python 命令

使用命令行运行作业,需要在 HPC 中放好 PBS 脚本。 如何写一个 PBS 脚本,下面以自己的 PBS 脚本为例。

PBS 脚本

PBS 基本命令

笔记:指定作业名(最大15个字符)

#PBS -N Test

笔记:指定 PBS 系统运行程序的节点名和节点数(如:1 个节点,1 个核心)

#PBS -l nodes=1:ppn=24

笔记:指定 PBS 系统运行 30 小时

#PBS -l walltime=30:00:00

笔记:指定作业的队列为 batch 队列

#PBS -q batch

笔记:设置作业的优先级,范围在-1024 ~ +1023,越大优先级越高

#PBS -p 1022

笔记:该参数指定标准错误输出的位置,缺省的情况下,PBS 系统把标准输出和标准错误输出放在用户qsub 命令提交作业的目录下。

#PBS -o /home/physics/output
#PBS -e /home/physics/output_err

笔记:进入工作目录 $PBS_O_WORKDIR

cd $PBS_O_WORKDIR

笔记:打印作业被 PBS 系统指定的作业号,脚本在执行时的作业名,作业队列信息

echo This jobs is $PBS_JOBID@PBS_JOBNAME@$PBS_QUEUE

笔记:逐行打印作业名字到 Test_01.txt 文件中

echo my job id is $PBS_JOBID | tee Test_01.txt

笔记:逐行打印运行的节点

echo run nodes is followomg: | tee -a Test_01.txt

笔记:将 PBS 系统指定的作业运行的节点名写入到 Test_01.txt

cat $PBS_NPDEFILE | tee -a Test_01.txt

笔记:打印运行的开始时间写入 Test_01.txt

echo begin time is 'date' | tee -a Test_01.txt
id='echo $PBS_JOBID|awk -F. '{print $1}' '

笔记:对使用的核心数进行统计

NP='cat $PBS_NODEFILE|wc -l' 

笔记:export 到本作业的环境变量,使用 ScienceTools 环境

export FERMI_DIR=/public/home/yitingfeng/ScienceTools-v11r5p3-fssc-20180124-x86_64-unknown-linux-gnu-libc2.17/x86_64-unknown-linux-gnu-libc2.17

笔记:找到 FERMI_DIR 下的 fermi-init.sh,使 fermi-init 库生效

source $FERMI_DIR/fermi-init.sh

笔记:运行程序

python gtlike-sourceone-530.py 

笔记:打印结束时间

echo end time is 'date' | tee -a Test_01.txt

运行命令

首先登录 Xshell ,已经登录成功界面:
在这里插入图片描述

以跑易老师的程序为例:
易老师超算中心目录
在这里插入图片描述
在这里插入图片描述

如何跑?

在这里插入图片描述

使用 2 步切换到运行程序目录

cd ~/DCF
cd ./3FGLJ0303.4-2407

提交作业

qsub <PBS作业脚本>

qsub gtlike-fat-532.pbs

生成一个作业号(运行成功的标志)

4309.admin1

查看作业状态

qstat 4309.admin1 (或者 qstat 4309)

取消作业

qdel 4309.admin1

更改作业队列

qmove high 4309.admin1

更改预计的运行时间

qalter -l walltime=50:00:00 4309.admin1

准备 PBS 脚本?


查看服务器所有提交作业状态

qstat

在这里插入图片描述

Job IdnameUserTime UseSQueue
作业标识符 PBS 自动指定作业名用户名作业已经运行的时间作业状态队列名

列出正在运行作业的作业号,作业名,用户,运行时间,队列名信息:

qstat -t

在这里插入图片描述

S作业状态
E退出
Q排队
H挂起
R运行
C结束

交换作业顺序

qorder 4299.admin1 4309.admin1

使用下面的命令查看所有节点运行状态

pestat

在这里插入图片描述

nodestateLoadRhymemncpusAllmemResiusrsTasksJoblist
节点名节点状态节点负载物理内存数 MBcpu / 核心数分配内存数寄存器数用户数作业数作业列表
state表示的具体情况:
excel所有 CPU 资源已经被占用;
busyCPU 已经接近满负荷运行(次选节点);
free全部或部分 CPU 空闲(首选节点);
offl已离线(管理员手动指定离线,谁都用不了)。

查看队列信息:

qstat -q

在这里插入图片描述

Queue说明
middle中间
high高的
batch批量
low低的
defaultAp默认应用程序

列出队列的一些隐藏信息

qstat -Q

在这里插入图片描述


列出 PBS 服务器相关信息:

qstat -B

在这里插入图片描述
只有一个管理员,服务器上有 3 个作业,2 个挂起,1 个正在运行。


成品

#PBS -N Test
#PBS -l nodes=1:ppn=24
#PBS -l walltime=30:00:00
#PBS -q batch
#PBS -p 1022
#PBS -o /home/physics/output
#PBS -e /home/physics/output_err
cd $PBS_O_WORKDIR
echo This jobs is $PBS_JOBID@PBS_JOBNAME@$PBS_QUEUE
echo my job id is $PBS_JOBID | tee Test_01.txt
echo run nodes is followomg: | tee -a Test_01.txt
cat $PBS_NPDEFILE | tee -a Test_01.txt
echo begin time is 'date' | tee -a Test_01.txt
id='echo $PBS_JOBID|awk -F. '{print $1}' '
NP='cat $PBS_NODEFILE|wc -l' 
export FERMI_DIR=/public/home/yitingfeng/ScienceTools-v11r5p3-fssc-20180124-x86_64-unknown-linux-gnu-libc2.17/x86_64-unknown-linux-gnu-libc2.17
source $FERMI_DIR/fermi-init.sh
python gtlike-sourceone-530.py 
echo end time is 'date' | tee -a Test_01.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

依旧天真无邪

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值