queue、slurmではpartitionって言った方がいいのかな
slurm.confの中で
:
PartitionName=workq Nodes=ALL Default=YES MaxTime=INFINITE State=UP
PartitionName=g00 Nodes=g00 MaxTime=INFINITE State=UP PriorityTier=10
PartitionName=g Nodes=g0[1-2] MaxTime=INFINITE State=UP PriorityTier=30
PartitionName=g2 Nodes=g2[1-5] MaxTime=INFINITE State=UP PriorityTier=100
PartitionName=g3 Nodes=g3[1-5] MaxTime=INFINITE State=UP
PartitionName=g4 Nodes=g4[1-3] MaxTime=INFINITE State=UP PriorityTier=50
PartitionName=tomo Nodes=TomoJ01,TomoR01 MaxTime=INFINITE State=Up
PartitionName=live Nodes=live0[1-3] MaxTime=INFINITE State=UP
:とあったとします。
ここで
srun --partition=g00,g,g2 ....としたら、PriorityTier=100のg2が優先的に割り当てられて、それが埋まっていたら PriorityTier=30 の g、次にPriorityTier=10の g00 が選ばれる.
queue g3 にはPriorityTierの値がないけど、その場合は 1 として処理されます
slurm.confにて
:
GrsTypes=gpu
# g2x*RTX 3090
NodeName=g21 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=191560 Gres=gpu:rtx3090:2
NodeName=g22 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=191560 Gres=gpu:rtx3090:2
NodeName=g23 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=191560 Gres=gpu:rtx3090:2
NodeName=g24 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=191560 Gres=gpu:rtx3090:2
NodeName=g25 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=191560 Gres=gpu:rtx3090:2
# g3x A6000
NodeName=g31 CPUs=128 Boards=1 SocketsPerBoard=2 CoresPerSocket=64 ThreadsPerCore=1 RealMemory=257233 Gres=gpu:a6000:2
NodeName=g32 CPUs=128 Boards=1 SocketsPerBoard=2 CoresPerSocket=64 ThreadsPerCore=1 RealMemory=257231 Gres=gpu:a6000:2
NodeName=g33 CPUs=128 Boards=1 SocketsPerBoard=2 CoresPerSocket=64 ThreadsPerCore=1 RealMemory=257232 Gres=gpu:a6000:2
NodeName=g34 CPUs=128 Boards=1 SocketsPerBoard=2 CoresPerSocket=64 ThreadsPerCore=1 RealMemory=257209 Gres=gpu:a6000:2
NodeName=g35 CPUs=128 Boards=1 SocketsPerBoard=2 CoresPerSocket=64 ThreadsPerCore=1 RealMemory=257224 Gres=gpu:a6000:2
# g4x
NodeName=g41 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=257268 Gres=gpu:rtx5000ada:2
NodeName=g42 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=257272 Gres=gpu:rtx5000ada:2
NodeName=g43 CPUs=32 Boards=1 SocketsPerBoard=2 CoresPerSocket=16 ThreadsPerCore=1 RealMemory=257272 Gres=gpu:rtx5000ada:2
# g00
NodeName=g00 CPUs=36 Boards=1 SocketsPerBoard=2 CoresPerSocket=18 ThreadsPerCore=1 RealMemory=385084 Gres=gpu:gv100:4
NodeName=g01 CPUs=64 Boards=1 SocketsPerBoard=1 CoresPerSocket=32 ThreadsPerCore=2 RealMemory=257271 Gres=gpu:pro4000:4
NodeName=g02 CPUs=32 Boards=1 SocketsPerBoard=1 CoresPerSocket=32 ThreadsPerCore=1 RealMemory=257279 Gres=gpu:pro4000:4
PartitionName=workq Nodes=ALL Default=YES MaxTime=INFINITE State=UP
:と「Gres=gpu:rtx3090:2」「Gres=gpu:a6000:2」と各計算ノードを定義付けれる。これはrtx3090が2枚乗っているノード。a6000が2枚乗っているノードを意図してます。
このような定義の中でgv100を2枚使って計算したいなら
srun --partition=workq --gres=gpu:gv100:2 --pty bashとします