100 likes | 234 Vues
This document outlines the principles of runtime-based scheduling, focusing on the selection and management of eligible jobs using priority queues. It describes the phases involved, including the initial scheduling of jobs based on system capabilities and fairness, followed by backfill scheduling strategies such as conservative and aggressive backfilling. The decision-making process for determining job priorities, reserving resources, and the management of pivot jobs is examined. We use examples to illustrate how various jobs interact and the effect of scheduling decisions on overall performance.
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)