跑模式自然需要用到调度系统来进行作业管理,根据我在不同服务器上的使用经验总结几个非常常用的命令。
调度系统是个非常复杂的东西,所以细节不说太多了,要用的时候对应去查。
相关概念:
集群:利用高性能通信网络将一组计算机(节点)按某种结构连接起来 ,在并行化设计及可视化人机交互集成开发环境支持下,统一调度、协调处理 ,实现高效并行处理的系统。
集群一般由两个或两个以上的服务器组建而成,每个服务器被称为一个集群节点,集群节点之间可以相互通信[1]。大气科学中我们一般使用的都是科学计算集群(高性能计算集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大计算能力,包括数值计算和数据处理,并且倾向于追求综合性能[2]。)
节点:集群的基本组成单位,一般可以分为管理节点、登陆节点、计算节点、存储节点等。
作业调度系统是负责监控和管理集群中资源和作业的软件系统。
研究组服务器:一般使用的是PBS调度系统。
常用的作业管理命令如下:
qsub 提交作业:qsub ***.sh
qstat 查看排队和运行状态的作业 -n (查看任务并显示对应节点)
作业状态R: 表示正在运行;Q:表示排队中;C:表示任务取消。
qnodes 查看节点使用情况
qdel 删除任务: qdel jobid
超级计算机:一般使用的是SLURM调度系统。
SLURM调度系统简介:http://www.aais.pku.edu.cn/clshpc/quession/shownews.php?id=44
使用集群:太原曙光、"北极星"高性能计算平台、天河二号等等等等,大部分超算都是用这个的。
常用的作业管理命令如下:
sbatch 提交作业:e.g. sbatch run.sh (只接收脚本)
scancel 删除作业
squeue 查看排队和运行状态的作业
scontrol 控制作业
查询指定作业详情:scontrol show job <jobid>
scontrol suspend 挂起作业; scontrol resume <jobid> 恢复作业; scontrol requeue <jobid>作业重新排队; scontrol hold <id/name>保留作业; scontrol release <id/name>释放作业
需要注意的是,天河二号SLURM调度系统的执行命令略有不同,它将首字母s全部改为yh,
常用的作业调度命令如下:
yhbatch 提交作业:e.g. yhbatch –n 112 –p TH_HPC1 ./run.sh
yhcancel 取消作业:yhcancel jobid
yhrun 运行任务:e.g. yhrun –n 28(选择核数) –p debug(分区) ./real.exe
yhq 查看任务进程
yhi 查看节点分配情况
vim rsl.error.0000 查看错误
vim rsl.out.0000 查看输出过程
tail –f rsl.out.0000 查看进程
tail –f log0 查看后台进程
超算使用debug:https://hpc-help-manual.readthedocs.io/zh_CN/latest/
[1]服务器集群技术的定义: https://server.zzidc.com/fwqjs/320.html
[2] 服务器集群技术的分类: https://server.zzidc.com/fwqjs/322.html