slurm: 컴퓨팅 노드가 sinfo에 없나요?

slurm: 컴퓨팅 노드가 sinfo에 없나요?

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

관련 정보