<div dir="ltr">Hi Luke,<div><br></div><div>Yes, I think your request is unusual.</div><div><br></div><div>I believe in the past there have been a number of middle-wares that helped with this kind of bureaucracy, things like <a href="http://docs.adaptivecomputing.com/gold/">http://docs.adaptivecomputing.com/gold/</a></div><div><br></div><div>Regards,</div><div>Alex</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 10, 2020 at 9:23 AM Luke Yeager <<a href="mailto:lyeager@nvidia.com">lyeager@nvidia.com</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 lang="EN-US" style="overflow-wrap: break-word;">
<div class="gmail-m_6834216528702600772WordSection1">
<p class="MsoNormal">(originally posted at <a href="https://bugs.schedmd.com/show_bug.cgi?id=10322" target="_blank">
https://bugs.schedmd.com/show_bug.cgi?id=10322</a>)<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">There are some great tools for assigning discounts or penalties to jobs before they are allocated resources (QOS.UsageFactor, Partition.TRESBillingWeights, etc.).<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">But what if I want to change the cost of a job <b>after the fact</b>? I might want to avoid penalizing users who spent their allocated resources on jobs which failed due to reasons outside their control (hardware failure, parallel FS glitch,
 etc.). Or I might want to charge extra for jobs which require node reboots to cleanup afterwards. Either way, I want to be able to adjust how the job affects their current fairshare priority for queued jobs.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Are there any existing solutions for this?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The only solutions I've found so far are:<u></u><u></u></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="gmail-m_6834216528702600772MsoListParagraph" style="margin-left:0in">'sacctmgr modify ... set RawUsage=0' - obviously this is too big of a hammer. I only want to edit a single job, and I might want to *increase* the usage for the job - not decrease
 it.<u></u><u></u></li><li class="gmail-m_6834216528702600772MsoListParagraph" style="margin-left:0in">For clusters using "banking" (limits on TRESMins and PriorityDecayHalfLife=0), you can essentially accomplish this by editing the limit after the fact (increasing the limit for a refund,
 decreasing it for a penalty). See <a href="https://github.com/jcftang/slurm-bank/blob/master/src/sbank-refund" target="_blank">
https://github.com/jcftang/slurm-bank/blob/master/src/sbank-refund</a>, for example. But we don't use that accounting strategy at our site. And that seems a little sketchy anyway since you’d need to remember to reset the limits back to their intended values
 at each usage reset.<u></u><u></u></li></ol>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The official answer I got on the bug is “I don't think what you are looking for is possible with Slurm at the moment.”
<b>I’m posting here in hopes that someone else has a creative solution?</b> How do y’all handle this?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks!<u></u><u></u></p>
<p class="MsoNormal">Luke<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Search keywords: priority bump refund penalty accounting<u></u><u></u></p>
</div>
</div>

</blockquote></div>