我有一个新节点,我正试图将它添加到我的Slurm集群中。新机器上的核心并不都有相同数量的线程:6个核心每个有2个线程,4个核心每个都有1个线程,总共有16个CPU。这由lscpu -e
:显示
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 6300.0000 800.0000
1 0 0 0 0:0:0:0 yes 6300.0000 800.0000
2 0 0 1 1:1:1:0 yes 6300.0000 800.0000
3 0 0 1 1:1:1:0 yes 6300.0000 800.0000
4 0 0 2 2:2:2:0 yes 6300.0000 800.0000
5 0 0 2 2:2:2:0 yes 6300.0000 800.0000
6 0 0 3 3:3:3:0 yes 6300.0000 800.0000
7 0 0 3 3:3:3:0 yes 6300.0000 800.0000
8 0 0 4 4:4:4:0 yes 6300.0000 800.0000
9 0 0 4 4:4:4:0 yes 6300.0000 800.0000
10 0 0 5 5:5:5:0 yes 6300.0000 800.0000
11 0 0 5 5:5:5:0 yes 6300.0000 800.0000
12 0 0 6 6:6:6:0 yes 3600.0000 800.0000
13 0 0 7 7:7:6:0 yes 3600.0000 800.0000
14 0 0 8 8:8:6:0 yes 3600.0000 800.0000
15 0 0 9 9:9:6:0 yes 3600.0000 800.0000
当添加到slurm.conf时,我通常只从lscpu
复制信息。对于我的新机器,信息是:
CPU(s): 16
On-line CPU(s) list: 0-15
Thread(s) per core: 1
Core(s) per socket: 10
Socket(s): 1
我在slurm.conf后面附加了以下内容:NodeName=MYNODE CPUs=16 SocketsPerBoard=1 CoresPerSocket=10 ThreadsPerCore=1
。然而,这引发了以下错误:
error: NodeNames=MYNODE CPUs=16 match no Sockets, Sockets*CoresPerSocket or Sockets*CoresPerSocket*ThreadsPerCore. Resetting CPUs.
在内部,slurm似乎希望节点的核心具有相同数量的线程。如何为我的新节点正确配置slurm.conf?
尝试删除SocketsPerBoard=1 CoresPerSocket=10 ThreadsPerCore=1
并仅指定NodeName=MYNODE CPUs=16
。如果同时指定CPUS
和Sockets
、CoresPerSocket
等,Slurm将尝试理解CPU
的值。如果你没有指定它们,Slurm将接受你给它的CPU值。