Dedicated heterogeneous node scheduling including backfill scheduling
First Claim
1. A method for job scheduling in a dedicated heterogeneous multi-node computing environment, the method comprising:
- grouping the nodes into homogeneous node sub-pools each comprising nodes of equal capacity;
for each sub-pool, creating a corresponding free node schedule which charts the number of free nodes in the sub-pool over time;
receiving a plurality of jobs to be scheduled;
ordering the jobs by job priority;
for each job in order of job priority, (a) identifying a conforming sub-pool set comprising conforming nodes of sufficient capacity suitable for use by the job, (b) determining an earliest available time range from the free node schedule(s) of the conforming sub-pool set, where the earliest available time range has a sufficient duration and a sufficient number of conforming free nodes to complete the job, and (c) scheduling the job for execution in the earliest available time range; and
executing the jobs at their respective earliest available time ranges.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and system for job scheduling (including backfill scheduling) dedicated heterogeneous nodes in a multi-node computing environment. Heterogeneous nodes in the computing environment are first discovered and grouped into homogeneous node sub-pools. For each sub-pool, a free node schedule is created so that the number of free nodes in the sub-pool may be charted over time. For each job in order of priority, using the free node schedules of only those sub-pools having nodes which may be used by a particular job, to determine the earliest time range capable of running the job. Once the earliest time range is determined for a particular job, scheduling the job to run in that earliest time range. If the earliest time range determined for a lower priority job has a start time occurring earlier than a higher priority job, then the lower priority job is scheduled to run in that earliest time range if doing so would not disturb the anticipated start times of any higher priority job previously scheduled to run at a future time. In this manner, the overall efficient utilization and throughput of dedicated heterogeneous multi-node computers may be increased without degrading utilization or throughput of higher priority jobs by utilizing resources that would otherwise remain idle.
99 Citations
20 Claims
-
1. A method for job scheduling in a dedicated heterogeneous multi-node computing environment, the method comprising:
-
grouping the nodes into homogeneous node sub-pools each comprising nodes of equal capacity;
for each sub-pool, creating a corresponding free node schedule which charts the number of free nodes in the sub-pool over time;
receiving a plurality of jobs to be scheduled;
ordering the jobs by job priority;
for each job in order of job priority, (a) identifying a conforming sub-pool set comprising conforming nodes of sufficient capacity suitable for use by the job, (b) determining an earliest available time range from the free node schedule(s) of the conforming sub-pool set, where the earliest available time range has a sufficient duration and a sufficient number of conforming free nodes to complete the job, and (c) scheduling the job for execution in the earliest available time range; and
executing the jobs at their respective earliest available time ranges. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for job scheduling in a dedicated heterogeneous multi-node computing environment, the method comprising:
-
grouping the nodes into homogeneous node sub-pools each comprising nodes of equal capacity;
for each sub-pool, creating a corresponding free node schedule which charts the number of free nodes in the sub-pool over time;
receiving a plurality of jobs to be scheduled;
ordering the jobs by job priority;
for each job in order of job priority, (a) identifying a conforming sub-pool set comprising conforming nodes of sufficient capacity suitable for use by the job, (b) determining an earliest available time range from the free node schedule(s) of the conforming sub-pool set, where the earliest available time range has a sufficient duration and a sufficient number of conforming free nodes to complete the job, and (c) scheduling the job for execution in the earliest available time range, including, (1) upon a determination that the earliest available time range of the job starts at the present time, presently scheduling the job for immediate execution by allocating as many conforming free nodes to the job as required thereby in order of increasing node capacity starting with the conforming free nodes of a lowest order conforming sub-pool, (2) upon a determination that the earliest available time range of the job starts at a future time, pseudo-scheduling the job for future execution by marking for dedication to the job as many conforming free nodes in the earliest available time range as required by the job, in order of increasing node capacity starting with the conforming free nodes of a lowest order conforming sub-pool, and (3) upon a determination that a start time of an earliest available time range of a lower priority job to be scheduled occurs prior to a future start time of an earliest available time range of at least one of a set of higher priority jobs previously pseudo-scheduled for future execution, backfill scheduling the lower priority job for execution starting ahead of the future start time of the at least one of the set of higher priority jobs, whereby anticipated future start times of the previously pseudo-scheduled set of higher priority jobs are not delayed by the backfill scheduling; and
executing the jobs at their respective earliest available time ranges.
-
-
18. A computer system for job scheduling in a dedicated heterogeneous node computer environment, the computer system comprising:
-
a data mining component that discovers the nodes and node capacities in the scheduling environment;
a node grouping component that groups the discovered nodes into homogeneous node sub-pools each comprising nodes of equal capacity;
a free node schedule forming component that creates for each sub-pool a corresponding free node schedule which charts the number of free nodes in the corresponding sub-pool over time;
a user interface for receiving a plurality of jobs to be scheduled;
an ordering component for ordering the jobs by job priority;
a job analyzing component that, for each job in order of job priority, (a) identifies a conforming sub-pool set comprising conforming nodes of sufficient capacity suitable for use by the job, and (b) determines an earliest available time range from the free node schedule(s) of the conforming sub-pool set, where the earliest available time range has a sufficient duration and a sufficient number of conforming free nodes to complete the job; and
a job scheduling component for scheduling each job for execution in the respective earliest available time range.
-
-
19. A computer-readable medium containing instructions for controlling a computer system to schedule jobs in a dedicated heterogeneous multi-node computing environment, by:
-
grouping the nodes into homogeneous node sub-pools each comprising nodes of equal capacity;
for each sub-pool, creating a corresponding free node schedule which charts the number of free nodes in the sub-pool over time;
receiving a plurality of jobs to be scheduled;
ordering the jobs by job priority;
for each job in order of job priority, (a) identifying a conforming sub-pool set comprising conforming nodes of sufficient capacity suitable for use by the job, (b) determining an earliest available time range from the free node schedule(s) of the conforming sub-pool set, where the earliest available time range has a sufficient duration and a sufficient number of conforming free nodes to complete the job, and (c) scheduling the job for execution in the earliest available time range; and
executing the jobs at their respective earliest available time ranges; and
-
-
20. A computer-readable medium containing instructions for controlling a computer system to schedule jobs in a dedicated heterogeneous multi-node computing environment, by:
-
grouping the nodes into homogeneous node sub-pools each comprising nodes of equal capacity;
for each sub-pool, creating a corresponding free node schedule which charts the number of free nodes in the sub-pool over time;
receiving a plurality of jobs to be scheduled;
ordering the jobs by job priority;
for each job in order of job priority, (a) identifying a conforming sub-pool set comprising conforming nodes of sufficient capacity suitable for use by the job, (b) determining an earliest available time range from the free node schedule(s) of the conforming sub-pool set, where the earliest available time range has a sufficient duration and a sufficient number of conforming free nodes to complete the job, and (c) scheduling the job for execution in the earliest available time range, including, (1) upon a determination that the earliest available time range of the job starts at the present time, presently scheduling the job for immediate execution by allocating as many conforming free nodes to the job as required thereby in order of increasing node capacity starting with the conforming free nodes of a lowest order conforming sub-pool, (2) upon a determination that the earliest available time range of the job starts at a future time, pseudo-scheduling the job for future execution by marking for dedication to the job as many conforming free nodes in the earliest available time range as required by the job, in order of increasing node capacity starting with the conforming free nodes of a lowest order conforming sub-pool, and (3) upon a determination that a start time of an earliest available time range of a lower priority job to be scheduled occurs prior to a future start time of an earliest available time range of at least one of a set of higher priority jobs previously pseudo-scheduled for future execution, backfill scheduling the lower priority job for execution starting ahead of the future start time of the at least one of the set of higher priority jobs, whereby anticipated future start times of the previously pseudo-scheduled set of higher priority jobs are not delayed by the backfill scheduling; and
executing the jobs at their respective earliest available time ranges.
-
Specification