slurm 22.05.6을 설정하고 천천히 클러스터를 구축하고 있습니다. 지금까지 저는 서버 vogon
와 노드를 설정했습니다 ceres
. 이것은 잘 작동하는 것 같습니다. 이제 작업을 시작할 수 있습니다 srun
. 서버는 Debian 11에 있고 노드는 Ubuntu 22.04를 실행하며 해당 CPU는 AMD입니다.
root@ceres:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 48 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 24
On-line CPU(s) list: 0-23
Vendor ID: AuthenticAMD
Model name: AMD Ryzen 9 5900X 12-Core Processor
CPU family: 25
Model: 33
Thread(s) per core: 2
Core(s) per socket: 12
Socket(s): 1
Stepping: 2
Frequency boost: enabled
CPU max MHz: 4950.1948
CPU min MHz: 2200.0000
BogoMIPS: 7399.57
...
hathor
이제 Intel CPU를 사용하여 다른 노드를 설정했습니다 .
root@hathor:~/slurm-22.05.6/etc# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 48 bits virtual
CPU(s): 24
On-line CPU(s) list: 0-23
Thread(s) per core: 1
Core(s) per socket: 16
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 151
Model name: 12th Gen Intel(R) Core(TM) i9-12900KS
Stepping: 2
CPU MHz: 3400.000
CPU max MHz: 5500.0000
CPU min MHz: 800.0000
BogoMIPS: 6835.20
...
보시다시피, CPU 수는 코어 수와 일치하지 않습니다. 이에 따라 man slurm.conf
이것이 작동해야 합니다 SlurmdParameters=config_overrides
. 또한 유일하게 중요한 매개변수는 CPU 수여야 하지 않습니까? slurmd를 시작하면 상태는 다음과 같습니다.
root@hathor:~/slurm-22.05.6/etc# systemctl status slurmd
● slurmd.service - Slurm node daemon
Loaded: loaded (/lib/systemd/system/slurmd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-11-24 13:49:01 GMT; 32min ago
Main PID: 124749 (slurmd)
Tasks: 1
Memory: 1.3M
CGroup: /system.slice/slurmd.service
└─124749 /usr/local/sbin/slurmd -D -s
Nov 24 13:49:01 hathor systemd[1]: Started Slurm node daemon.
Nov 24 13:49:01 hathor slurmd[124749]: slurmd: error: Thread count (24) not multiple of core count (16)
Nov 24 13:49:01 hathor slurmd[124749]: slurmd: Node configuration differs from hardware: CPUs=24:24(hw) Boards=1:1(hw) SocketsPerBoard=24:1(hw) CoresPerSocke>
Nov 24 13:49:01 hathor slurmd[124749]: slurmd: error: Thread count (24) not multiple of core count (16)
Nov 24 13:49:01 hathor slurmd[124749]: slurmd: slurmd version 22.05.6 started
Nov 24 13:49:01 hathor slurmd[124749]: slurmd: CPUs=24 Boards=1 Sockets=24 Cores=1 Threads=1 Memory=128530 TmpDisk=943 Uptime=8938 CPUSpecList=(null) Feature>
그리고 sinfo
목록만 나열하면 됩니다 ceres
:
root@hathor:~/slurm-22.05.6/etc# sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
compute* up infinite 1 idle ceres
실제로 CPU와 코어가 일치하지 않는 경우 BIOS에서 스레드를 비활성화할 수도 있지만 그렇게 하지 않는 것이 좋습니다. 해결책이 있나요? 아니면 설정에서 다른 문제를 찾아야 합니까?
편집하다
내 거 slurm.conf
:
root@hathor:/var/log# cat /usr/local/etc/slurm.conf
ClusterName=comind
SlurmctldHost=vogon
MpiDefault=none
ProctrackType=proctrack/cgroup
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=slurm
StateSaveLocation=/var/spool/slurmctld
SwitchType=switch/none
TaskPlugin=task/affinity
#
# TIMERS
InactiveLimit=0
KillWait=30
MinJobAge=300
SlurmctldTimeout=120
SlurmdTimeout=300
Waittime=0
#
# SCHEDULING
SchedulerType=sched/backfill
SelectType=select/cons_tres
#
# LOGGING AND ACCOUNTING
AccountingStorageHost=localhost
AccountingStoragePass="/var/run/munge/munge.socket.2"
AccountingStoragePort=3307
AccountingStorageType=accounting_storage/slurmdbd
AccountingStorageUser=slurm
AccountingStoreFlags=job_comment,job_script,job_env
JobCompHost=localhost
JobCompLoc=slurm_job_db
JobCompPass=Atauseq01
JobCompPort=3306
JobCompType=jobcomp/mysql
JobCompUser=slurm
JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurmd.log
#
# COMPUTE NODES
NodeName=ceres CPUs=24 RealMemory=100000 Sockets=1 CoresPerSocket=12 ThreadsPerCore=2 State=UNKNOWN
NodeName=hathor CPUs=24 RealMemory=120000 State=UNKNOWN
PartitionName=compute Nodes=ALL Default=YES MaxTime=INFINITE State=UP
답변1
내 솔루션을 보여주기 위한 매우 짧은 답변입니다. 다른 사람이 이것을 더 자세한 답변으로 작성할 수 있습니까? 최선의 답변으로 받아들이겠습니다.
따라서 이는 매우 간단하다는 것이 밝혀졌습니다. 노드 목록을 PartitionName
교체하여 행을 변경하기만 하면 ALL
됩니다. 직관적으로는 "모든 노드"를 의미해야 한다는 것은 말이 되지 않지만 ALL
저에게는 효과적이었습니다.
PartitionName=compute Nodes=ceres,hathor Default=YES MaxTime=INFINITE State=UP