服务器集群任务调度系统大比拼!
有幸在工作中体验了几个计算集群的使用,几乎每个计算集群都有专门的集群调度系统,而当需要在短时间对多个系统做测试是第一道障碍就是熟悉各个调度系统的操作指令,以下列举近期使用到的几个分布式作业调度系统的常用操作指令和几个超算中心使用体验
广州超算天河二号
普通刀片节点配备 两颗 Intel(R) Xeon(R) CPU E5-2692 v2 @ 2.20GHz 共24物理核,内存为64G 调度系统为 Slurm, 以下为常用指令
- yhi(sinfo): 显示系统资源使用情况
yhi
命令可查看当前账号可用队列的状态信息,主要用于查看队列中空闲节点情况,常用命令还有yhi -n cn12345
查看指定节点信息,yhi -p paratera
查看指定队列信息 - yhq(squeue): 显示作业状态 yhq可查看已投递任务的简要信息,包括任务状态、所在计算节点等信息,常用参数有-j 指定jobid,-u 指定用户, -p 指定队列, -w 指定计算节点进行查看任务信息
- yhrun(srun): 交互式作业提交
常用命令
yhrun -N 1 -n 1 -c 24 -p paratera job.sh
,由于天河服务器采用任务独占节点形式,所以每节点的任务最好设置为24 - yhbatch(sbatch): 批处理作业提交
后台提交任务,功能与yhrun相同,命令
yhbatch -N 1 -n 1 -c 24 job.sh
- yhcancel(scancel): 取消已提交的作业
命令用法
yhcancel JOBID
- yhacct(sacct) 查看历史作业信息
yhacct -u pp100 -S 03/01/17 -E 03/31/17 --field=jobid,partition,jobname,user,nnodes,start,end,elapsed,state
国家超算无锡中心神威-太湖之光
国家超算无锡中心神威-太湖之光包括商用x86平台和国产平台,国产平台采用申威26010处理器,有专用编译器,尚不支持JAVA, python, R等语言,x86平台普通节点配备两颗 Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz CPU,共24物理核,内存为128G 调度系统不明,可能是自研的, 以下为常用指令
- qload -w: 显示可用队列资源使用情况
- bsub: 提交作业
常用参数
bsub -q q_x86_share -N 1 -o job.out /path/job.sh
, 注意投递任务脚本路径必须填写绝对路径 - bjobs: 显示作业状态
- bkill JOBID: 取消已提交的作业
福建省超算中心曙光集群
福建省超算中心曙光集群普通计算节点配备 2颗 Intel(R) Xeon(R) Gold 6132 CPU @ 2.60GHz 共28物理核,内存为188G,在体验期间曾遇到频繁开启关闭超线程现象,同时也有幸在同系统内对开启或关闭超线程做了点小测试,测试结果显示开启超线程对计算密集型进行有小幅加速效果,但在以核时计费的系统中需要注意,开启超线程将会导致耗费核时为实际情况的两倍,此集群只有一个登录节点,节点运行程序较多,有mysql运行在登录节点,从一定程度上反映出集群管理不是很专业 调度系统为PBS, 以下为常用指令
- pestat: 查看计算节点使用情况
- qsub job.pbs: 提交作业
job.pbs中填写提交参数与执行程序,参数格式为
#PBS -q queue
- qstat: 查看已提交作业 可通过-u 参数指定用户名进行只查看自己的任务
- qdel JOBID: 取消已投递作业
某高校计算集群
普通计算节点配备两颗Intel(R) Xeon(R) Gold 6150 CPU @ 2.70GHz CPU,36物理核,内存188G,是体验中单节点性能最好的集群 调度系统为 LSF, 以下为常用指令
- bqueues: 查看可用队列信息
- bhosts: 查看计算节点使用情况
- bsub: 提交作业
简单任务参数,
bsub -q queue -J name -n 36 -R span[hosts=1] -o name.out -e name.err /path/job.sh
- bjobs: 查看已提交作业
- bkill JOBID: 取消已提交作业
自建计算集群
调度系统为 SGE, 以下为常用指令
- qconf -sql: 显示队列 qconf -sq QUEUE: 显示指定队列信息
- qhost: 查看计算节点使用情况
- qsub: 提交作业
- qstat:查看已提交作业
- qdel JOBID: 取消已提交作业
分布式管理系统常用指令速查表
欢迎您继续补充完善
那我就补充一下,早在 2015年9月29日 我就介绍过关于qsub和condor两种在集群上面提交任务的方式比对
- condor_q 可以用来查看任务提交情况
- condor_rm 可以用来杀掉提交的任务。
- 认知指纹:颠覆性的身份认证技术
- 跟我学姿势:极客教你如何科学的看电影
- Discuz 5.x/6.x/7.x投票SQL注入分析
- 论如何高效的挖掘漏洞
- Rxjava + retrofit + dagger2 + mvp搭建Android框架
- 走进科学:如何正确的隐藏自己的行踪
- 比特儿(Bter.com) 比特币交易平台被盗事件全解析
- BitTorrent Bleep:无法被监控的聊天软件
- QQ蠕虫的行为检测方法
- 趋势OfficeScan系列产品漏洞分析
- [置顶] 浅谈我为什么选择用Retrofit作为我的网络请求框架
- 基于HTML5的Canvas指纹跟踪技术
- 有关 Android 应用桌面角标 (BadgeNumber) 实现的探讨
- XSS的原理分析与解剖
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法