<div dir="ltr">Problem might be that OverSubscribe is not enabled? w/o it, I don't believe the time-slicing can be GANG scheduled<div><br></div><div>Can you do a "scontrol show partition" to verify that it is?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 12, 2023 at 6:24 PM Helder Daniel <<a href="mailto:hdaniel@ualg.pt">hdaniel@ualg.pt</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,</div><div><br></div><div>I am trying to enable gang scheduling on a server with a CPU with 32 cores and 4 GPUs.</div><div><br></div><div>However, using Gang sched, the cpu jobs (or gpu jobs) are not being preempted after the time slice, which is set to 30 secs.</div><div><br></div><div>Below is a snapshot of squeue. There are 3 jobs each needing 32 cores. The first 2 jobs launched are never preempted. The 3rd job is forever (or at least until one of the other 2 ends) starving:</div><div><br></div><div> JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)<br> 313 asimov01 cpu-only hdaniel PD 0:00 1 (Resources)<br> 311 asimov01 cpu-only hdaniel R 1:52 1 asimov<br> 312 asimov01 cpu-only hdaniel R 1:49 1 asimov<br></div><div><br></div><div>The same happens with GPU jobs. If I launch 5 jobs, requiring one GPU each, the 5th job will never run. The preemption is not working with the specified timeslice.</div><div><br></div><div>I tried several combinations:</div><div><br></div><div>SchedulerType=sched/builtin and backfill<br>SelectType=select/cons_tres and linear</div><div><br></div><div>I'll appreciate any help and suggestions</div><div></div><div></div><div>The slurm.conf is below.</div><div>Thanks<br></div><div><br></div><div>ClusterName=asimov<br>SlurmctldHost=localhost<br>MpiDefault=none<br>ProctrackType=proctrack/linuxproc # proctrack/cgroup<br>ReturnToService=2<br>SlurmctldPidFile=/var/run/slurmctld.pid<br>SlurmctldPort=6817<br>SlurmdPidFile=/var/run/slurmd.pid<br>SlurmdPort=6818<br>SlurmdSpoolDir=/var/lib/slurm/slurmd<br>SlurmUser=slurm<br>StateSaveLocation=/var/lib/slurm/slurmctld<br>SwitchType=switch/none<br>TaskPlugin=task/none # task/cgroup<br>#<br># TIMERS<br>InactiveLimit=0<br>KillWait=30<br>MinJobAge=300<br>SlurmctldTimeout=120<br>SlurmdTimeout=300<br>Waittime=0<br>#<br># SCHEDULING<br>#FastSchedule=1 #obsolete<br>SchedulerType=sched/builtin #backfill<br>SelectType=select/cons_tres<br>SelectTypeParameters=CR_Core #CR_Core_Memory let's only one job run at a time<br>PreemptType = preempt/partition_prio<br>PreemptMode = SUSPEND,GANG<br>SchedulerTimeSlice=30 #in seconds, default 30<br>#<br># LOGGING AND ACCOUNTING<br>#AccountingStoragePort=<br>AccountingStorageType=accounting_storage/none<br>#AccountingStorageEnforce=associations<br>#ClusterName=bip-cluster<br>JobAcctGatherFrequency=30<br>JobAcctGatherType=jobacct_gather/linux<br>SlurmctldDebug=info<br>SlurmctldLogFile=/var/log/slurm/slurmctld.log<br>SlurmdDebug=info<br>SlurmdLogFile=/var/log/slurm/slurmd.log<br>#<br>#<br># COMPUTE NODES<br>#NodeName=asimov CPUs=64 RealMemory=500 State=UNKNOWN<br>#PartitionName=LocalQ Nodes=ALL Default=YES MaxTime=INFINITE State=UP<br><br># Partitions<br>GresTypes=gpu<br>NodeName=asimov Gres=gpu:4 Sockets=1 CoresPerSocket=32 ThreadsPerCore=2 State=UNKNOWN<br>PartitionName=asimov01 Nodes=asimov Default=YES MaxTime=INFINITE MaxNodes=1 DefCpuPerGPU=2 State=UP<br></div><div><br></div></div>
</blockquote></div>