COMPUTE CLUSTER WITH BALANCED RESOURCES
First Claim
1. A method of operating a scheduler within a computing cluster to schedule a plurality of jobs for concurrent execution on resources of the computing cluster, the method comprising:
- with at least one processor;
receiving for each of a plurality of jobs, a request for a minimum number of computing resources;
computing for each of the plurality of jobs a respective desired allocation of the resources;
adjusting resources among the plurality of jobs by;
identifying a first job of the plurality of jobs using less than the respective desired allocation of resources;
identifying a second job of the plurality of jobs using more than the respective desired allocation of resources;
de-allocating a resource from the second job and allocating the de-allocated resource to the first job.
2 Assignments
0 Petitions
Accused Products
Abstract
A scheduler for a compute cluster that allocates computing resources to jobs to achieve a balanced distribution. The balanced distribution maximizes the number of executing jobs to provide fast response times for all jobs by, to the extent possible, assigning a designated minimum for each job. If necessary to achieve this minimum distribution, resources in excess of a minimum previously allocated to a job may be de-allocated, if those resources can be used to meet the minimum requirements of other jobs. Resources above those used to meet the minimum requirements of executing jobs are allocated based on a computed desired allocation, which may be developed based on respective job priorities. To meet the desired allocation, resources may be de-allocated from jobs having more than their desired allocation and re-allocated to jobs having less than their desired allocation of resources.
187 Citations
20 Claims
-
1. A method of operating a scheduler within a computing cluster to schedule a plurality of jobs for concurrent execution on resources of the computing cluster, the method comprising:
with at least one processor; receiving for each of a plurality of jobs, a request for a minimum number of computing resources; computing for each of the plurality of jobs a respective desired allocation of the resources; adjusting resources among the plurality of jobs by; identifying a first job of the plurality of jobs using less than the respective desired allocation of resources; identifying a second job of the plurality of jobs using more than the respective desired allocation of resources; de-allocating a resource from the second job and allocating the de-allocated resource to the first job. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A non-transitory computer-readable storage medium comprising computer-executable instructions that, when executed by a processor, perform a method of scheduling resources in a computing cluster, the method comprising:
-
in a first mode; allocating resources to at least one ready job in a ready queue, the resources being allocated to each of the at least one ready jobs based on a minimum resource requirement specified for the ready job; in a second mode; determining a desired respective allocation of resources for each of the plurality of executing jobs; and adjusting resource usage by de-allocating a resource from at least one job using more than the respective desired allocation of resources and allocating the de-allocated resource to a job using less than the respective desired allocation of resources. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
a plurality of computing nodes providing computing resources; a scheduler, the scheduler comprising; a ready queue holding jobs received from a plurality of clients; an allocator, executing on at least one processor, operating in a first mode and a second mode, the first mode comprising; allocating available computing resources to ready jobs in a ready queue, the resources being allocated to each of the ready jobs based on a minimum resource requirement specified for the ready job, the available computing resources comprising un-allocated resources and resources allocated to executing jobs in excess of respective minimum requirements for the executing jobs; and the second mode comprising; determining a desired respective allocation of resources for each of the plurality of executing jobs; and adjusting resource usage by de-allocating a resource from at least one job using more than the respective desired allocation of resources and allocating the de-allocated resource to a job using less than the respective desired allocation of resources. - View Dependent Claims (17, 18, 19, 20)
-
Specification