<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div>I would have thought partition QoS is the way to do this. We add partition QoS to our partition definitions, and implement quotas on usage as well.</div><div><br></div><div>PartitionName=physical Nodes=... Default=YES MaxTime=30-0 DefaultTime=0:10:0 State=DOWN QoS=physical TRESBillingWeights=CPU=1.0,Mem=4.0G</div><div><br></div><div>We then define the QoS "physical"</div><div><br></div><div># sacctmgr show qos physical -p<br>Name|Priority|GraceTime|Preempt|PreemptExemptTime|PreemptMode|Flags|UsageThres|UsageFactor|GrpTRES|GrpTRESMins|GrpTRESRunMins|GrpJobs|GrpSubmit|GrpWall|MaxTRES|MaxTRESPerNode|MaxTRESMins|MaxWall|MaxTRESPU|MaxJobsPU|MaxSubmitPU|MaxTRESPA|MaxJobsPA|MaxSubmitPA|MinTRES|<br>physical|0|00:00:00|||cluster|||1.000000|||||||||||cpu=750,mem=9585888M|||cpu=750,mem=9585888M||||</div><div><br></div><div>We implement quotas using MaxTRESPerUser and MaxTRESPerAccount</div><div><br></div><div>It works really well for us. If you need to override it for a particular group, you can create another QoS, set the OverPartQOS flag, and get the users to specify that QoS.</div><div><br></div><div>Sean</div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">--<br>Sean Crosby | Senior DevOpsHPC Engineer and HPC Team Lead<br>Research Computing Services | Business Services<br>The University of Melbourne, Victoria 3010 Australia<br><br></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 2 Mar 2021 at 08:24, Stack Korora <<a href="mailto:stackkorora@disroot.org">stackkorora@disroot.org</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">UoM notice: External email. Be cautious of links, attachments, or impersonation attempts<br>
<br>
Greetings,<br>
<br>
We have different node classes that we've set up in different <br>
partitions. For example, we have our standard compute nodes in compute; <br>
our GPU's in a gpu partition; and jobs that need to run for months go <br>
into a long partition with a different set of machines.<br>
<br>
For each partition, we have QOS to prevent any single user from <br>
dominating the resources (set at a max of 60% of resources; not my call <br>
- it's politics - I'm not going down that rabbit hole...).<br>
<br>
Thus, I've got something like this in my slurm.conf (abbreviating to <br>
save space; sorry if I trim too much).<br>
<br>
PartitionName=compute [snip] AllowQOS=compute Default=YES<br>
PartitionName=gpu [snip] AllowQOS=gpu Default=NO<br>
PartitionName=long [snip] AllowQOS=long Default=NO<br>
<br>
Then I have my QOS configured. And in my `sacctmgr dump cluster | grep <br>
DefaultQOS` I have "DefaultQOS=compute".<br>
<br>
All of that works exactly as expected.<br>
<br>
This makes it easy/nice for my users to just do something like:<br>
$ sbatch -n1 -N1 -p compute script.sh<br>
<br>
They don't have to specify the QOS for compute and they like this.<br>
<br>
However, for the other partitions they have to do something like this:<br>
$ sbatch -n1 -N1 -p long --qos=long script.sh<br>
<br>
The users don't like this. (though with scripts, I don't see the big <br>
deal in just adding a new line...but you know... users...)<br>
<br>
The request from the users is to make a default QOS for each partition <br>
thus not needing to specify the QOS for the other partitions.<br>
<br>
Because the default is set in the cluster configuration, I'm not sure <br>
how to do this. And I'm not seeing anything in the documentation for a <br>
scenario like this.<br>
<br>
Question A:<br>
Anyone know how I can set a default QOS per partition?<br>
<br>
Question B:<br>
Chesterton's fence and all... Is there a better way to accomplish what <br>
we are attempting to do? I don't want a single QOS to limit across all <br>
partitions. I need a per partition limit that restricts users to 60% of <br>
resources in that partition.<br>
<br>
Thank you!<br>
~Stack~<br>
<br>
</blockquote></div>