So Ole, any thoughts on the config info I sent? 

I’m still not certain if terminating a running job based on GrpTRESMins is even 
possible or supposed to work.

Hoot


> On Apr 24, 2023, at 3:21 PM, Hoot Thompson <hoot_thomp...@verizon.net> wrote:
> 
> See below…...
> 
>> On Apr 24, 2023, at 1:55 PM, Ole Holm Nielsen <ole.h.niel...@fysik.dtu.dk> 
>> wrote:
>> 
>> On 24-04-2023 18:33, Hoot Thompson wrote:
>>> In my reading of the Slurm documentation, it seems that exceeding the 
>>> limits set in GrpTRESMins should result in terminating a running job. 
>>> However, in testing this, The ‘current value’ of the GrpTRESMins only 
>>> updates upon job completion and is not updated as the job progresses. 
>>> Therefore jobs aren’t being stopped. On the positive side, no new jobs are 
>>> started if the limit is exceeded. Here’s the documentation that is 
>>> confusing me…..
>> 
>> I think the jobs resource usage will only be added to the Slurm database 
>> upon job completion.  I believe that Slurm doesn't update the resource usage 
>> continually as you seem to expect.
>> 
>>> If any limit is reached, all running jobs with that TRES in this group will 
>>> be killed, and no new jobs will be allowed to run.
>>> Perhaps there is a setting or misconfiguration on my part.
>> 
>> The sacctmgr manual page states:
>> 
>>> GrpTRESMins=TRES=<minutes>[,TRES=<minutes>,...]
>>> The total number of TRES minutes that can possibly be used by past, present 
>>> and future jobs running from this association and its children.  To clear a 
>>> previously set value use the modify command with a new value of -1 for each 
>>> TRES id.
>>> NOTE: This limit is not enforced if set on the root association of a 
>>> cluster.  So even though it may appear in sacctmgr output, it will not be 
>>> enforced.
>>> ALSO NOTE: This limit only applies when using the Priority Multifactor 
>>> plugin.  The time is decayed using the value of PriorityDecayHalfLife or 
>>> PriorityUsageResetPeriod as set in the slurm.conf.  When this limit is 
>>> reached all associated jobs running will be killed and all future jobs 
>>> submitted with associations in the group will be delayed until they are 
>>> able to run inside the limit.
>> 
>> Can you please confirm that you have configured the "Priority Multifactor" 
>> plugin?
> Here’s relevant items from slurm.conf
> 
> 
> # Activate the Multifactor Job Priority Plugin with decay
> PriorityType=priority/multifactor
>  
> # apply no decay
> PriorityDecayHalfLife=0
>  
> # reset usage after 1 month
> PriorityUsageResetPeriod=MONTHLY
>  
> # The larger the job, the greater its job size priority.
> PriorityFavorSmall=NO
>  
> # The job's age factor reaches 1.0 after waiting in the
> # queue for 2 weeks.
> PriorityMaxAge=14-0
>  
> # This next group determines the weighting of each of the
> # components of the Multifactor Job Priority Plugin.
> # The default value for each of the following is 1.
> PriorityWeightAge=1000
> PriorityWeightFairshare=10000
> PriorityWeightJobSize=1000
> PriorityWeightPartition=1000
> PriorityWeightQOS=0 # don't use the qos factor
> 
> 
>> 
>> Your jobs should not be able to start if the user's GrpTRESMins has been 
>> exceeded.  Hence they won't be killed!
> 
> Yes, this works fine
>> 
>> Can you explain step by step what you observe?  It may be that the above 
>> documentation of killing jobs is in error, in which case we should make a 
>> bug report to SchedMD.
> 
> I set the GrpTRESMins limit to a very small number and then ran a sleep job 
> that exceeded the limit. The job continued to run past the limits until I 
> killed it. It was the only job in the queue. And if it makes any difference, 
> this testing is being done in AWS on a parallel cluster.
>> 
>> /Ole

Reply via email to