用qsub脚本语言在集群上进行简单的作业调度。
先看一个简单的qsub脚本样例 exp.pbs:
#!/bin/bash
#PBS -s /bin/bash
#PBS -l nodes=1:ppn=12
#PBS -q gpu
cd /public/home/qing/code/Refiner
export PATH=/public/home/qing/code/Qing/build/bin:$PATH
export LD_LIBRARY_PATH = /public/home/qing/code/Qing/build/bin:$LD_LIBRARY_PATH
(time correspond -kd 15.0 -falloff 45.0 -max_bbox_dist 10.0 )
整个脚本分为3个部分:
1)资源说明
#PBS -s /bin/bash --> -s 运行脚本bash
#PBS -l nodes=1:ppn=12 --> -l 运行当前脚本需要节点数目1,该节点上线程数12
#PBS -q gpu --> -q 队列,该集群上只有一种队列gpu
2)工作目录
cd /public/home/qing/code/Refiner
export PATH=/public/home/qing/code/Qing/build/bin:$PATH
export LD_LIBRARY_PATH = /public/home/qing/code/Qing/build/bin:$LD_LIBRARY_PATH
由于用到一些别的库并没有在 bash
的.profile
里,因此需要额外export
3)程序运行
(time correspond -kd 15.0 -falloff 45.0 -max_bbox_dist 10.0 )
time
即 统计时间
correspond -kd 15.0 -falloff 45.0 -max_bbox_dist 10.0
即程序运行的命令行
那么运行此脚本使用命令 qsub exp.psb
,那么程序在哪些节点上运行,需要哪些硬件资源qsub会自动分配。
多个.PBS可以直接用python生成。