[slurm-users] Ubuntu20.03 - DRAIN state with SMT in node capabilities
Sven Duscha
sven.duscha at tum.de
Wed Nov 24 17:13:30 UTC 2021
Dear all,
in our research we use a small cluster of PowerEdge R720 servers. Those
have two sockets and are equipped with 2 Intel(R) Xeon(R) CPU E5-2650 v2
@ 2.60GHz processors and 256GB each.
For a long time we used CentOS-7.8 as OS, I tried Debian10 and
Ubuntu-20.04 LTS, wher the latter is the preferred OS to go on with. So,
I would want to reinstall the other nodes all with Ubuntu-20.04.
I have the problem, that when I enable SMT in /etc/slurm/slurm.conf with
the option ThreadsPerCore=2 in the nodes' capabilities, e.g.:
NodeName=ekgen[2-7] RealMemory=250000 Sockets=2 CoresPerSocket=8
ThreadsPerCore=2 State=UNKNOWN
The Ubuntu-20.04-LTS-node quickly falls into drain state showing a state
of "Low socket*core*threads":
sinfo -lNe
Wed Nov 24 16:52:58 2021
NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK
WEIGHT AVAIL_FE REASON
ekgen1 1 cluster* idle 16 2:8:1 480000 0 1
(null) none
ekgen2 1 cluster* mixed 32 2:8:2 250000 0 1
(null) none
ekgen3 1 debian idle 32 2:8:2 250000 0 1
(null) none
ekgen4 1 cluster* mixed 32 2:8:2 250000 0 1
(null) none
ekgen5 1 cluster* idle 32 2:8:2 250000 0 1
(null) none
ekgen6 1 debian idle 32 2:8:2 250000 0 1
(null) none
ekgen7 1 cluster* idle 32 2:8:2 250000 0 1
(null) none
ekgen8 1 debian draining 32 2:8:2 250000 0 1
(null) Low socket*core*thre
ekgen9 1 cluster* idle 32 2:8:2 192000 0 1
(null) none
And with the error message in slurmd.log:
[2021-04-30T18:34:09.551] error: Node configuration differs from
hardware: Procs=16:32(hw) Boards=1:1(hw) SocketsPerBoard=2:2(hw)
CoresPerSocket=8:8(hw) ThreadsPerCore=1:2(hw)
This message is a bit confusing for me: I thought the second values in
the pairs with (hw) besides it are referring to the actual hardware values?
slurmd -C shows the same capabilities for the nodes running CentOS-7,
Debian-10 and Ubuntu-20.04.
(as would be expected for identical hardware)
CentOS-7:
slurmd -C
NodeName=ekgen2 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=8
ThreadsPerCore=2 RealMemory=257738
UpTime=161-05:27:14
slurmd --version
slurm 19.05.3-2
Debian-10:
slurmd -C
NodeName=ekgen3 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=8
ThreadsPerCore=2 RealMemory=257971
UpTime=7-12:25:25
slurmd --version
slurm 19.05.8
Ubuntu-20.04:
slurmd -C
NodeName=ekgen8 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=8
ThreadsPerCore=2 RealMemory=257901
UpTime=161-18:15:37
slurmd --version
slurm 19.05.3-2
The CentOS-7 and Debian-10 nodes accept the SMT configuration and run
fine without the DRAIN state problem. The slurmd versions differ only in
the patch level versions, and the ones running on CentOS-7 and
Ubuntu-20.04 are even the same.
If I change to node declaration to CoresPerSocket=16 and
ThreadsPerCore=1 in slurm.conf, which isn't really the way HT or SMT
works, where there not the double number of fully fledge cores present,
but only the different arhythmetic units used by multiple threads:
NodeName=ekgen[8] RealMemory=250000 Sockets=2 CoresPerSocket=16
ThreadsPerCore=1 State=UNKNOWN
(This also differs from what slurmd -C reports on Ubuntu-20.04)
and use it in the cluster configuration, the "drained" state seems not
to come up:
sinfo -lNe
Wed Nov 24 18:02:09 2021
NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK
WEIGHT AVAIL_FE REASON
ekgen1 1 cluster* idle 16 2:8:1 480000 0 1
(null) none
ekgen2 1 cluster* mixed 32 2:8:2 250000 0 1
(null) none
ekgen3 1 debian idle 32 2:8:2 250000 0 1
(null) none
ekgen4 1 cluster* mixed 32 2:8:2 250000 0 1
(null) none
ekgen5 1 cluster* idle 32 2:8:2 250000 0 1
(null) none
ekgen6 1 debian idle 32 2:8:2 250000 0 1
(null) none
ekgen7 1 cluster* idle 32 2:8:2 250000 0 1
(null) none
ekgen8 1 debian idle 32 2:16:1 250000 0 1
(null) none
ekgen9 1 cluster* idle 32 2:8:2 192000 0 1
(null) none
In practical use of SLURM this results in the same number of available
job slots: 32, but detailed resource allocation for CoresPerSocket and
ThreadsPerCore would not be the same.
Our users aren't using such specific resource allocation, though. It is
hard enough to make specifiy appropriate memory requirements.
So, maybe this wouldn't be a big disadvantage, if that allows us to use
32 slots on the "16 Cores with 2 SMT" Xeons in the PowerEdge R720
machines with Ubuntu 20.04
Has anyone else encountered this problem? Is there a better/proper for
using all SMT/HT cores?
Best regards,
Sven Duscha
--
Sven Duscha
Deutsches Herzzentrum München
Technische Universität München
Lazarettstraße 36
80636 München
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5463 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.schedmd.com/pipermail/slurm-users/attachments/20211124/90f76418/attachment.bin>
More information about the slurm-users
mailing list