当我检查代码“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 可能是使用
hwloc
库的某个版本编译的,该版本无法识别包含 4 个高性能核心和 8 个低功耗核心的 CPU。
您可以做的是定义
CPUs=4
,删除其他参数 Boards=1 SocketsPerBoard=1 CoresPerSocket=1 ThreadsPerCore=1
,并在 SlurmdParameters配置选项中设置
config_overrides
选项。另请参阅此其他选项,它似乎与您拥有的 CPU 类型有关。