slurm学习(1)

  1. slurm 指定节点
  2. SLURM 使用基础教程
  3. slurm节点,分区,作业信息说明
  4. slurm作业提交系统常用命令
  5. slurm nodelist
  6. 中国科大超算中心用户使用手册
  7. slurm:使用nodelist中的任何节点
  8. SLURM 使用参考
  9. Slurm执行的CPU管理步骤 (我想提高我的cpu利用率来着,可是没看明白这个博客)

Slurm使用四个基本步骤来管理一个job/step的CPU资源:

步骤1:节点选择
Slurm选择向作业或作业步骤分配CPU资源的节点集节点选择受到许多控制CPU分配的配置和命令行选项的影响(下面的步骤2)。如果配置了SelectType=select/linear,则所选节点上的所有资源都将分配给job/step。如果SelectType配置为select/con_res或select/con_tres,则可以从所选节点中分配单独的socket、core和thread作为消耗资源。消耗资源类型由SelectTypeParameters定义

步骤2:从选定的节点分配CPU
Slurm从步骤1中选择的一组节点中为一个job/step分配CPU资源CPU分配受与节点选择相关的配置和命令行选项的影响。如果配置了SelectType=select/linear,则所选节点上的所有资源都将分配给job/step。如果SelectType被配置为select/cons_res或select/ccons_tres,则可以从所选节点分配单独的socket、core和thread作为可消耗资源。消费资源类型由SelectTypeParameters定义。

当使用select/cons_res或select/cons_tres的SelectType时跨节点的默认分配方法是block分配(在使用另一个节点之前,分配一个节点中所有可用的CPU) 节点内的默认分配方法是循环分配(在节点内的socket之间以循环方式分配可用的CPU)用户可以使用下面描述的适当命令行选项覆盖默认行为。分配方法的选择可能会影响将哪些特定CPU分配给job/step。

步骤3:将任务分配给选定的节点
Slurm将任务分配给在步骤1中为job/step选择的节点每个任务只分发给一个节点,但可以将多个任务分发到每个节点。除非为作业指定CPU对任务的过度使用(over commitment),否则分配到节点上的任务数量受节点上分配的CPU数量和每个任务的CPU数量的限制如果配置了消耗资源,或允许资源共享,那么来自多个job/step的任务可以同时在同一节点上运行。

步骤4:将任务分配和绑定到节点内的CPU(可选)
在可选的步骤4中,Slurm将每个任务分发并绑定到步骤3中任务分发到的节点上分配的CPU。分布在同一节点上的不同任务可以绑定到相同的CPU子集或不同的子集。这一步被称为任务亲和或任务/CPU绑定。

  1. slurm作业提交系统常用命令
  2. [任务提交/队列管理] 求助如何修改slurm脚本,交作业到某个特定服务器上
  3. 别人的博客

–cpus-per-task
单个 task 需要的 cpu 核数。一个 task 进程可以多线程,需要使用多个 cpu 核。此选项 Slurm 系统会保证一个 task 进程所在的计算节点上有指定数量的 cpu 核可用。
例如,每个计算节点有 4 个 cpu 核,一个计算作业需要 24 个 cpu 核,直接声明 24 个 task,Slurm 系统将分配 6 个计算节点。(指定 --cpus-per-task=3,Slurm 系统将分配 8 个计算节点,确保一个 task 需要的 3 个 cpu 核是在同一个节点上。)???如果不设置此选项,Slurm 系统默认值是 1,即默认一个 task 分配一个 cpu 核。

–gres
申请每计算节点上 GPU 资源的数量,在作业脚本里加入
#SBATCH --gres=gpu:X
其中 X 是数量,目前 gpu 分区每计算节点有 4 张 Nvidia Tesla V100,因此 X 不超过 4

–nodes
申请计算节点的数量,在作业脚本里加入
#SBATCH --nodes=X
其中 X 是数量,需要的计算节点的个数

–ntasks
指定要运行的 task 数量,在作业脚本里加入
#SBATCH --ntasks=X 其中 X 是数量。sbatch 不启动 task,只向 Slurm 系统申请需要的 cpu 核数,默认一个 task 申请一个 cpu 核,如果设置了 --cpus-per-task 选项,则会改变此默认数量

–ntasks-per-node
控制每个计算节点上运行 task 的数量,一般与 --nodes 配合使用,例如: MPI 程序需要 3 个计算节点,每节点 4 个进程,一共 12 个 task,对应 12 个 cpu 核
#SBATCH --nodes=3
#SBATCH --ntasks-per-node=4
还可以与 --cpus-per-task 选项配合使用,例如:MPI 程序需要 3 个计算节点,每节点 2 个进程,每个进程使用 OpenMP 运行 8 个线程,一共 48 个 cpu 核
#SBATCH --nodes=3
#SBATCH --ntasks-per-node=2
#SBATCH --cpus-per-task=8

–partition
超算上不同类型的计算资源,以资源分区的形式组织,指定使用哪个分区,在作业脚本里加入,例如申请在 hpxg 分区计算
#SBATCH --partition=hpxg

–nodelist
指定要运行的计算节点名,节点名之间用逗号分隔,例如: 指定使用 n0050 n0051 n0052 n0053 n0180
#SBATCH --nodelist=n[0050-0053],n0180

–excludet
排除特定的计算节点,例如: 分配资源的时候不要分配计算节点 n0050 n0051 n0052 n0053 n0180
#SBATCH --exclude=n[0050-0053],n0180

查询计算节点和分区状态 运行以下命令查看计算节点的状态信息 sinfo 其中 STATE 常见的有
alloc,节点已经被分配给作业任务
down,节点当前不可用
drain,节点被管理员设置为退出服务
idle,节点当前空闲
mix,节点有部分计算资源已被分配,还有部分资源空闲可用

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值