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