在SLURM中,lscpu和slurmd -c不匹配。所以资源无法使用

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

当我检查代码“lscpu”时,它显示

Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          45 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   4
  On-line CPU(s) list:    0-3
Vendor ID:                GenuineIntel
  Model name:             13th Gen Intel(R) Core(TM) i7-1360P
    CPU family:           6
    Model:                186
    Thread(s) per core:   1
    Core(s) per socket:   1
    Socket(s):            4
    Stepping:             2

但是当我尝试“slurmd -C”时,它显示

CPUs=1 Boards=1 SocketsPerBoard=1 CoresPerSocket=1 ThreadsPerCore=1

它显示了不同数量的 CPU 和 在 slurm.config 文件中,当我尝试设置 CPUs=4 时,节点未处于 STATE INVAL 状态。 所以即使我的电脑有 4 核,我也只能使用 1 核。

我尝试了openmpi,它使用4核。所以我想这不是核心的问题。

我检查了我是否有 NUMA 节点,代码为“lscpu | grep -i numa” 它显示

NUMA node(s): 1
NUMA node0 CPU(s): 0 - 3

看来我的电脑确实有 NUMA 节点。

在 hwloc 1.xx 中,可以通过 Ignore_NUMA 解决此问题。 但 hwloc 2.xx Ignore_NUMA 不起作用。

还有其他方法可以解决这个问题吗?

slurm
1个回答
0
投票

Slurm 可能是使用

hwloc
库的某个版本编译的,该版本无法识别包含 4 个高性能核心和 8 个低功耗核心的 CPU。

您可以做的是定义

CPUs=4
,删除其他参数
Boards=1 SocketsPerBoard=1 CoresPerSocket=1 ThreadsPerCore=1
,并在
SlurmdParameters
配置选项中设置 config_overrides 选项。另请参阅此其他选项,它似乎与您拥有的 CPU 类型有关。

© www.soinside.com 2019 - 2024. All rights reserved.