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 > >
