<div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Jim,<div><br></div><div>While we allow both batch and interactive, the scheduler handles them the same. The scheduler uses queue time, node count, requested wall time, project id, and others to determine when items run. We have backfill turned on so that when the scheduler allocates a large job and the time to drain those nodes, it schedules smaller jobs in its footprint as long as their requested wall time would end before the last node becomes available. We also have a queue that is preemptable that can run in the backfill window.</div><div><br></div><div>While not addressing your concern directly, we found that scheduling large and small jobs slightly differently makes a difference. The scheduler typically has a list that enumerates the nodes. We changed the scheduler to use the list as usual for large jobs but changed it to use the list in reverse so that small jobs are placed at the "end" of the list. The paper is <a href="https://dl.acm.org/doi/abs/10.5555/3014904.3015021">A multi-faceted approach to job placement for improved performance on extreme-scale systems</a>. When we started seeing GPU failures and we replaced half the GPUs, we modified the scheduler's list to schedule large, GPU jobs on the new GPUs and small jobs and CPU-only jobs on the nodes with old GPUs. That paper is <a href="https://dl.acm.org/doi/abs/10.1109/SC.2018.00010">GPU age-aware scheduling to improve the reliability of leadership jobs on Titan.</a> You might be able to modify these techniques to help your situation.</div><div><br></div><div>Scott</div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 16, 2020 at 6:25 PM Lux, Jim (US 337K) via Beowulf <<a href="mailto:beowulf@beowulf.org">beowulf@beowulf.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">





<div lang="EN-US">
<div class="gmail-m_2995764159479495016WordSection1">
<p class="MsoNormal"><span style="font-size:11pt">Are there any references out there that discuss the tradeoffs between interactive and batch scheduling (perhaps some from the 60s and 70s?) –
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">Most big HPC systems have a mix of giant jobs and smaller ones managed by some process like PBS or SLURM, with queues of various sized jobs.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">What I’m interested in is the idea of jobs that, if spread across many nodes (dozens) can complete in seconds (<1 minute) providing essentially “interactive” access, in the context of large jobs taking days
 to complete.   It’s not clear to me that the current schedulers can actually do this – rather, they allocate M of N nodes to a particular job pulled out of a series of queues, and that job “owns” the nodes until it completes.  Smaller jobs get run on (M-1)
 of the N nodes, and presumably complete faster, so it works down through the queue quicker, but ultimately, if you have a job that would take, say, 10 seconds on 1000 nodes, it’s going to take 20 minutes on 10 nodes.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">Jim<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11pt">-- <u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org" target="_blank">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="https://beowulf.org/cgi-bin/mailman/listinfo/beowulf" rel="noreferrer" target="_blank">https://beowulf.org/cgi-bin/mailman/listinfo/beowulf</a><br>
</blockquote></div>