Hello,

I'd recommend taking a look at bf_min_prio_resv (16.05 feature).

The basic idea is that above the priority threshold it'll do the normal
backfill algorithm -- look at each job, in order, check to see if it can
run, if not, plan for it.  Below the threshold, it'll still go in order,
but will simply check if the job can start NOW without disrupting the
schedule for the reserving jobs.  This check is MUCH faster than performing
the planning and reserving of resources.

The basic idea here is that the high priority segment of the list
(presuming you're using aging, or other schemes that give relatively stable
priority values in terms of their behavior), really only changes
infrequently, where as the lower portions of the priority list are
constantly changing.  If the bf scheduler has seen a job many times before
and couldn't start it then, what are the odds it'll start on this
iteration?  Low, unless the start time has arrived or jobs have ended
early.  Thus the *low* priority portion of the list is the high value
search space for finding backfill opportunities.

For this feature, you'll still need bf_continue as well as a bf_interval
that is reasonable for the number of jobs you want to reserve resources for
(60s works well for about ~500 jobs depending on your job mix, scale,
processor speed, etc).  Many of the bf_user and such options can be greatly
increased or disabled with this scheme.

-Doug

----
Doug Jacobsen, Ph.D.
NERSC Computer Systems Engineer
National Energy Research Scientific Computing Center <http://www.nersc.gov>
[email protected]

------------- __o
---------- _ '\<,_
----------(_)/  (_)__________________________


On Tue, Aug 23, 2016 at 12:54 AM, Ulf Markwardt <[email protected]
> wrote:

> Hello Christopher,
>
> > Isn't this what bf_continue is for?
> Not really: bf_continue just lets the bf scheduler continue at the same
> position where it was interrupted (e.g. for job submissions). So it does
> not consider the new jobs but crawls down first. (These interrupts are
> controlled by bf_yield_interval and bf_yield_sleep.)
>
> Once bf_interval is reached the bf scheduler starts at the top:
> "The backfill scheduler will start over after reaching this time limit
> (including time spent sleeping), even if the maximum job counts have not
> been reached."
>
> Ulf
>
> --
> ___________________________________________________________________
> Dr. Ulf Markwardt
>
> Technische Universität Dresden
> Center for Information Services and High Performance Computing (ZIH)
> 01062 Dresden, Germany
>
> Phone: (+49) 351/463-33640      WWW:  http://www.tu-dresden.de/zih
>
>

Reply via email to