100 likes | 228 Views
Ewa Deelman. Resource Management. Runtime-based Scheduling. Priority Queue Phase Eligible jobs are determined – based on fairness, system limitations, job state, etc...
E N D
Ewa Deelman Resource Management
Runtime-based Scheduling • Priority Queue Phase • Eligible jobs are determined – based on fairness, system limitations, job state, etc... • The list of eligible jobs is then sorted by job priority and jobs are scheduled to run until a job cannot be scheduled due to resource limitations • Resources and start/end times are reserved for the first job that could not be scheduled • Backfill Scheduling Phase • Jobs following the reserved job which would not delay the reserved job are scheduled on the remaining idle rsources
Single Queue Backfilling • A job is allowed to jump in the queue ahead of jobs that are delayed due to lack of resources • Non-preemptive • Conservative backfilling • A job is allowed to jump ahead provided it does not delay any previous job in the queue • Aggressive backfilling • A job is allowed to jump ahead if the first job is not affected • Better performing then conservative backfilling
Aggressive backfilling • Job (arrival time, number of procs, expected runtime) • Any job that executes longer than expected runtime is killed • Define pivot—first job in the queue • If enough resources for pivot, execute pivot and define a new pivot • Otherwise sort all currently executing jobs in order of their expected completion time • Determine pivot time—when sufficient resources for pivot are available
Aggressive backfilling • At pivot time, any idle processors not required for pivot job are defined as extra processors • The scheduler searches for the first queued job that • Requires no more than the currently idle processors and will finish by the pivot time, or • Requires no more than the minimum currently idle processors and the extra processors • Once a job becomes a pivot, it cannot be delayed • Possible that a job will end sooner and pivot starts before pivot time
Aggressive backfilling example Job A (10 procs,40mins) 10 processors 8 time Queue Job B (12 procs, 1 hour) Job C (20 procs, 2 hours) Job D (2 procs, 50 mins) Job E (6 procs, 1 hour) Job F (4 procs, 2 hours) Running Job A(10 procs, 40 mins)
Aggressive backfilling example Job A (10 procs,40mins) 10 PIVOT Job B processors 8 JOB D time queue Job B (12 procs, 1 hour) Job C (20 procs, 2 hours) Job E (6 procs, 1 hour) Job F (4 procs, 2 hours) Running Job A(10 procs, 40 mins) Job D (2 procs, 50 mins)
Aggressive backfilling example Job A (10 procs,40mins) 10 PIVOT Job B processors 8 Job F Job D time Queue Job B (12 procs, 1 hour) Job C (20 procs, 2 hours) Job E (6 procs, 1 hour) Running Job A(10 procs, 40 mins) Job D (2 procs, 50 mins) Job F (4 procs, 2 hours)
Aggressive backfilling example Job A (10 procs,40mins) 10 Job B processors 8 Job F Job D time Queue Job C (20 procs, 2 hours) Job E (6 procs, 1 hour) Running Job D (2 procs, 50 mins) Job F (4 procs, 2 hours) Job B (12 procs, 1 hour)
Aggressive backfilling example Job A (10 procs,40mins) Pivot Job C (20 procs, 2 hours) processors 10 Job B 8 Job F Job D time Queue Job C (20 procs, 2 hours) Job E (6 procs, 1 hour) Running Job D (2 procs, 50 mins) Job F (4 procs, 2 hours) Job B (12 procs, 1 hour)