Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
First Claim
1. A method for scheduling computing jobs comprising:
- calculating a priority component and an urgency component for scheduling a first computing job within a computer farm comprising a plurality of heterogeneous computing nodes, wherein the plurality of heterogeneous computing nodes comprise a plurality of resources, and wherein the urgency component is calculated based on a resource requirement of the first computing job and the plurality of resources;
adding the priority component to the urgency component of the first computing job to create a static priority of the first computing job;
selecting the first computing job that is ready for scheduling from a plurality of computing jobs, wherein the static priority of the first computing job is higher than a static priority of at least one other computing job of the plurality of computing jobs;
identifying a first computing node able to satisfy at least one resource of the resource requirement during a first time period;
determining that a second computing job has previously been scheduled to execute during a second time period, wherein the second time period overlaps the first time period;
preempting execution of the second computing job if the static priority of the first computing job is greater than a static priority of the second computing job by at least a threshold amount and if preempting the second computing job frees at least one resource of the resource requirement; and
scheduling execution of the first computing job to take place on the first computing node during the first time period, wherein the first time period is shorter than an anticipated execution time of a fourth computing job, and wherein the fourth computing job is partitioned into the first computing job and a fifth computing job so that the first computing job may be scheduled into the first time period.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for scheduling computing jobs in a scheduling event. A computing node is identified that is able to satisfy the required resource during a first time period. A second computing job is determined to have previously been scheduled to execute during a second time period, where the second time period overlaps a first time period. Execution of the second computing job is preempted if the first computing job'"'"'s priority is greater than the second computing job'"'"'s priority by at least a threshold amount, and if preempting the second job frees the required resource for use by the first computing job. Execution of the first computing job is scheduled to take place on a first computing node during the first time period, where a start time associated with the first time period is a time selected from the group consisting of a current time and a future time.
65 Citations
18 Claims
-
1. A method for scheduling computing jobs comprising:
-
calculating a priority component and an urgency component for scheduling a first computing job within a computer farm comprising a plurality of heterogeneous computing nodes, wherein the plurality of heterogeneous computing nodes comprise a plurality of resources, and wherein the urgency component is calculated based on a resource requirement of the first computing job and the plurality of resources; adding the priority component to the urgency component of the first computing job to create a static priority of the first computing job; selecting the first computing job that is ready for scheduling from a plurality of computing jobs, wherein the static priority of the first computing job is higher than a static priority of at least one other computing job of the plurality of computing jobs; identifying a first computing node able to satisfy at least one resource of the resource requirement during a first time period; determining that a second computing job has previously been scheduled to execute during a second time period, wherein the second time period overlaps the first time period; preempting execution of the second computing job if the static priority of the first computing job is greater than a static priority of the second computing job by at least a threshold amount and if preempting the second computing job frees at least one resource of the resource requirement; and scheduling execution of the first computing job to take place on the first computing node during the first time period, wherein the first time period is shorter than an anticipated execution time of a fourth computing job, and wherein the fourth computing job is partitioned into the first computing job and a fifth computing job so that the first computing job may be scheduled into the first time period. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing system comprising:
-
a computer farm comprising a plurality of heterogeneous computing nodes for executing a plurality of computing jobs, wherein the plurality of heterogeneous computing nodes are operatively connected using a network and comprise a plurality of resources; and a scheduler configured to schedule the plurality of computing jobs by; calculating a priority component and an urgency component for scheduling a first computing job of the plurality of computing jobs on the computer farm, wherein the urgency component is calculated based on a resource requirement of the first computing job and the plurality of resources; adding the priority component to the urgency component of the first computing job to create a static priority of the first computing job; selecting the first computing job that is ready for scheduling from the plurality of computing jobs, wherein the static priority of the first computing job is higher than a static priority of at least one other computing job of the plurality of computing jobs; identifying a first computing node able to satisfy at least one resource of the resource requirement during a first time period; determining that a second computing job has previously been scheduled to execute during a second time period, wherein the second time period overlaps the first time period; preempting execution of the second computing job if the static priority of the first computing job is greater than a static priority of the second computing job by at least a threshold amount and if preempting the second computing job frees at least one resource of the resource requirement; and scheduling execution of the first computing job to take place on the first computing node during the first time period, wherein the first time period is shorter than an anticipated execution time of a fourth computing job, and wherein the fourth computing job is partitioned into the first computing job and a fifth computing job so that the first computing job may be scheduled into the first time period. - View Dependent Claims (9, 10)
-
-
11. A non-transitory computer-readable storage medium having instructions disposed thereon to perform a method comprising:
-
calculating a priority component and an urgency component for scheduling a first computing job within a computer farm comprising a plurality of heterogeneous computing nodes, wherein the plurality of heterogeneous computing nodes comprise a plurality of resources, and wherein the urgency component is calculated based on a resource requirement of the first computing job and the plurality of resources; adding the priority component to the urgency component of the first computing job to create a static priority of the first computing job; selecting the first computing job that is ready for scheduling from a plurality of computing jobs, wherein the static priority of the first computing job is higher than a static priority of at least one other computing job of the plurality of computing jobs; identifying a first computing node able to satisfy at least one resource of the resource requirement during a first time period; determining that a second computing job has previously been scheduled to execute during a second time period, wherein the second time period overlaps the first time period; preempting execution of the second computing job if the static priority of the first computing job is greater than a static priority of the second computing job by at least a threshold amount and if preempting the second computing job frees at least one resource of the resource requirement; and scheduling execution of the first computing job to take place on the first computing node during the first time period, wherein the first time period is shorter than an anticipated execution time of a fourth computing job, and wherein the fourth computing job is partitioned into the first computing job and a fifth computing job so that the first computing job may be scheduled into the first time period. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification