在多个 slurm 文件中的一个节点上启动多个作业

问题描述 投票:0回答:1

我想使用 slurm 告诉服务器它可以在每个节点上放置多个作业(直到达到最大值或直到给定阈值)。我想为每个作业使用一个 slurm 文件(和一个 sbatch 命令)来完成此操作。我使用的服务器上的每个节点都有多个核心。我有很多工作,每个工作只需要一个核心。

我找到了多个答案,其中多个作业是从同一个 slurm 文件启动的,但我不想这样做。

我尝试过同时使用

--nodes=1
--ntasks=1
,但作业仍然只是简单地排队,而不是放在同一个节点上。

我的 slurm 文件是

#!/bin/bash
#SBATCH --partition=<partition-name>
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --output=<outputfile>
#SBATCH --error=<errorfile>

# run command
<command to run>
bash jobs slurm
1个回答
0
投票

默认情况下,除非明确配置,否则 Slurm 不会超额订阅节点上的核心。您的作业可能正在排队,因为 SLURM 正在等待完整的节点变得可用,即使只需要一个核心也是如此。

您需要确保 SLURM 配置为允许多个作业共享节点。这通常是通过在 SLURM 配置文件 (

SelectType
) 中设置
SelectTypeParameters
slurm.conf
来完成。

SelectType=select/cons_res
SelectTypeParameters=CR_Core

SelectType=select/cons_res:
这会将资源选择插件设置为“消耗资源”,这样可以对 CPU 核心和内存等资源进行更细粒度的控制。
SelectTypeParameters=CR_Core:
这允许 Slurm 根据所需的 CPU 核心数量来调度作业。

您可以通过运行以下命令来检查当前设置:

scontrol show config | grep -E "SelectType|SelectTypeParameters"
© www.soinside.com 2019 - 2024. All rights reserved.