当 --cpus-per-task=1 时,NumCPUs 显示 2

Mat*_* Ha 5 slurm

当我提交 1 个 cpu 核心作业时,作业信息显示 NumCPUs=2。

为什么它显示的不是 NumCPUs=1 而是 NumCPUs=2

这是对的吗?

子目录

#!/bin/bash



# Parameters
#SBATCH --error=%j_0_log.err
#SBATCH --job-name=test
#SBATCH -c 1
#SBATCH --output=%j_0_log.out
#SBATCH --partition=dev
#SBATCH --time=4



# command
srun echo "hello world"
Run Code Online (Sandbox Code Playgroud)

职位信息如下所示

scontrol 显示作业 915246

...
...
JobId=915246 JobName=test
...
NumNodes=1 NumCPUs=2 NumTasks=0 CPUs/Task=1 ReqB:S:C:T=0:0:*:*
TRES=cpu=2,node=1,billing=2
...
Run Code Online (Sandbox Code Playgroud)

dam*_*ois 5

集群中的计算节点很可能已配置为激活超线程/多线程。在这种情况下,Slurm 始终将整个物理核心分配给作业,并且不允许两个不同的作业使用相同的物理核心。

因此,在这里您请求一个核心,您将获得一个完整的物理核心,因此有两个硬件线程,即 Slurm 上下文中的两个 CPU。

不过,Slurm 可以配置为所有 CPU 都是物理核心。请参阅文档中的此页面以获取更多信息。