Resource allocation and scheduling for batch jobs
AssigneeAmazon Technologies, Inc.
InventorsDougal Stuart Ballantyne, James Edward Kinney, Jr., Aswin Damodar, Chetan Hosmani, Rejith George Joseph, Chris William Ramsey, Kiuk Chung, Jason Roy Rupard
Life of this patent
Estimating the term…
Abstract
A scheduler of a batch job management service determines that a set of resources a client is insufficient to execute one or more jobs. The scheduler prepares a multi-dimensional statistical representation of resource requirements of the jobs, and transmits it to a resource controller. The resource controller uses the multi-dimensional representation and resource usage state information to make resource allocation change decisions.
Claims20
A system, comprising:
- a job scheduler executing on one or more computing devices of a batch job service;
- and
- a resource controller of the batch job service executing on the one or more computing devices;
- wherein the job scheduler includes instructions that upon execution by a processor cause the one or more computing devices to:
- in response to an event notification, determine that a first set of resources allocated to a client is insufficient to execute one or more pending jobs;
- prepare a multi-dimensional statistical representation of resource requirements corresponding to at least a subset of the one or more pending jobs,
- wherein a first dimension of the statistical representation corresponds to a distribution of processing requirements of the one or more pending jobs, and wherein a second dimension of the statistical representation corresponds to memory requirements of the one or more pending jobs;
- and
- transmit, to the resource controller, (a) the multi-dimensional statistical representation and (b) utilization information pertaining to the first set of resources;
- and
- wherein the resource controller includes instructions that upon execution by a processor cause the one or more computing devices to:
- determine, based at least in part on (a) a constraint indicated by the client, (b) the multi-dimensional statistical representation and (c) the representation of utilization information, that a first additional resource is to be allocated for at least one pending job of the one or more pending jobs;
- and
- cause an allocation of one or more additional resources including the first additional resource.
A method, comprising:
- performing, at one or more computing devices:
- preparing, by a job scheduler, a multi-dimensional statistical representation of resource requirements corresponding to one or more pending jobs,
- wherein respective dimensions of the statistical representation correspond to respective resource attributes;
- determining, at a resource controller, based at least in part on a constraint indicated by a client, and based at least in part on the multi-dimensional statistical representation, that one or more resources are to be activated for the one or more pending jobs;
- and
- causing, by the resource controller, an activation of the one or more resources.
A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement a scheduler of a batch job management service, wherein the scheduler is configured to:
- determine that a set of resources activated on behalf of a client is insufficient to execute one or more pending jobs of the client;
- prepare a multi-dimensional statistical representation of resource requirements corresponding to at least a subset of the one or more pending jobs, wherein respective dimensions of the statistical representation correspond to respective resource attributes;
- and
- transmit, to a resource controller of the batch job management service, a resource report comprising the multi-dimensional statistical representation.
A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors implement a resource controller of a batch job management service, wherein the resource controller is configured to:
- determine one or more resource constraints of a compute environment indicated via a programmatic interface by a client;
- receive a multi-dimensional statistical representation of resource requirements corresponding to at least a subset of one or more pending jobs of the client, wherein respective dimensions of the statistical representation correspond to respective resource attributes;
- based at least in part on the one or more resource constraints, and based at least in part on the multi-dimensional statistical representation, determine that one or more resources are to be activated for the one or more pending jobs;
- and
- cause an activation of the one or more resources.
Dependencies are inferred from the claim text.