以下为《slurm用户手册-v1.0》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
GPU的主流调度平台
目前GPU的主流调度平台有三种:Slurm,最为通用,以物理GPU卡为单位进行调度;MesOS和K8s,以容器的方式进行调度。
什么是Slurm
Simple Linux Utility for Resource Management。面向Linux和Unix类似内核的免费调度工具,世界上很多超级计算机和计算机集群使用。它提供三个关键功能:首先,它在一段时间内未用户分配对资源(计算机节点)的独占/非独占访问权限;其次,它提供了一个框架,用于在一组分配的节点上启动,执行和监视工作(通常是并行作业,例如MPI)。最后,它通过管理待处理作业队列来仲裁资源争用。
Slurm适合运行什么类型的作业
MPI/OpenMP/深度学习等
Slurm架构如何
Slurm由两部分构成:
运行在每个节点上的slurmd守护进程
运行在管理节点上的中央slurmctld守护进程
/
一组节点还可以组成一个逻辑组,称为分区。分区可以配置各种约束条件,比如哪些用户可以使用它;分区支持的时限的作业大小。
/
Slurm如何管理GPU
Slurm将GPU识别为通用设备(GRES),用户需要在提交作业时指定每个节点上 用到的gpu数目。
如何使用slurm
几个示例:
示例1:想集群提交作业并检查队列状态
$ srun -l hostname
0: mtj-VirtualBox
$ srun -l sleep 5 &
[1] 24127
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
15 debug sleep mtj R 0:03 1 mtj-VirtualBox
$
[1]+ Done srun -l sleep 5
$
示例2:终止一个作业:
$ srun -l sleep 60 &
[1] 24262
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
16 debug sleep mtj R 0:03 1 mtj-VirtualBox
$ scancel 16
srun: Force Terminated job 16
$ srun: Job step aborted: Waiting up to 2 seconds for job step to finish.
0: slurmd[mtj-VirtualBox]: error: *** STEP 16.0 CANCELLED AT 2012-04-17T12:08:08 ***
srun: error: mtj-VirtualBox: task 0: Terminated
[1]+ Exit 15 srun -l sleep 60
$
常用命令
检查集群状态并提交作业
# sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
control* up infinite 1 idle mycentos6x
compute up infinite 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 多个节点,在不同节点上同时启动执行不同任务。为实现此功能需要生成一个配置文件,在配置文件中设置不同节点启动的任务。常见例子:
使用8个CPU核(-n8)运行作业,并在标准输出上显示任务号(-l)
srun -n8 -l hostname
使用2个节点(-N2),每节点4颗CPU,每颗CPU2个CPU核(-B 4-4:2-2),运行作业:
srun -N2 -B 4-4:2-2 a.out
如何查看作业排队情况
squeue显示分区中的作业队列信息。主要输出项包括作业号,分区名,作业名,用户名,状态,已运行时间和分配给的节点列表。
详细手册请参考slurm-userguide.pdf
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《slurm用户手册-v1.0》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。