-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
1、功能描述
--oversubscribe 参数允许一个作业与其它正在运行的作业共享已经被分配的资源。
(1)超售的资源类型: 可以被超售的资源层级取决于Slurm的系统配置 (slurm.conf)。管理员可以定义超售发生在哪个层面:
- 节点(Nodes):多个作业共享同一个节点,但各自使用不同的核心。
- 插槽(Sockets):在同一个物理CPU插槽上运行来自不同作业的任务。
- 核心(Cores):这是最常见的超售形式。两个或多个任务(来自不同作业)在同一个物理核心上通过时间片轮转的方式交替运行。这也被称为超线程(Hyper-Threading)的软件实现。
- 超线程(Hyperthreads):如果硬件启用了超线程,一个物理核心会表现为两个逻辑处理器。超售可以发生在这两个逻辑处理器上。
(2) 作业能否成功超售,最终决定权在管理员的配置上,而不是用户的请求。分区的 OverSubscribe 选项会覆盖作业的请求:
- OverSubscribe=NO 或 EXCLUSIVE:分区禁止超售。即使您提交时加了 --oversubscribe,该标志也会被忽略。
- OverSubscribe=YES:允许作业请求超售。
- OverSubscribe=FORCE:强制所有进入该分区的作业都进行超售,即使用户没有指定 --oversubscribe。
- OverSubscribe=FORCE::强制每个计算资源(如核心)最多被 N 个作业共享。
2、注意事项
(1)管理员配置依然为王:srun 的超售能力受制于分区的 OverSubscribe 配置。如果分区不允许超售,那么在 srun 中使用 --oversubscribe 申请新作业时,该选项会被忽略。
(2)与 --exclusive 互斥:无论在哪种场景下,--oversubscribe 都与 --exclusive 标志互相排斥。不能既要求独占资源,又要求共享资源。
(3)作业步内的资源竞争:在 sbatch 脚本中使用 --oversubscribe 时要特别小心。如果过度超售(例如在4个核心上运行100个计算密集型任务),任务间的上下文切换开销可能会大到让程序几乎无法取得进展。
参考文档:https://slurm.schedmd.com/srun.html
调研文档:https://e26ruh1viz.feishu.cn/wiki/FzGJwsfAQiVaOAkdGGUcDO6EnMd
Metadata
Metadata
Assignees
Labels
No labels