# US 12,009,996 B2 · System and method for providing dynamic provisioning within a compute environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,009,996 B2
- Document ID: US12009996B2
- Status: Granted
- Kind: B2
- Application number: 18/194,783
- Filed: 2023-04-03
- Published: 2023-07-27
- Granted: 2024-06-11
- Earliest claimed: 2004-06-18
- Assignees: III Holdings 12, LLC
- Applicants: III Holdings 12, LLC
- Inventors: David B. Jackson
- Web page: https://patentgrep.com/patent/US12009996B2

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/5005: {to service a request}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 9/5022: {Mechanisms to release resources}
- G06F 9/5072: {Grid computing}
- H04L 41/50: Network service management, e.g. ensuring proper service fulfilment according to agreements
- G06F 2209/5014: Reservation
- G06F 2209/504: Resource capping
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

The disclosure relates to systems, methods and computer-readable media for dynamically provisioning resources within a compute environment. The method aspect of the disclosure comprises A method of dynamically provisioning resources within a compute environment, the method comprises analyzing a queue of jobs to determine an availability of compute resources for each job, determining an availability of a scheduler of the compute environment to satisfy all service level agreements (SLAs) and target service levels within a current configuration of the compute resources, determining possible resource provisioning changes to improve SLA fulfillment, determining a cost of provisioning; and if provisioning changes improve overall SLA delivery, then re-provisioning at least one compute resource.

## Claims

### Claim 1

A method comprising:
determining that using a first set of compute resources of a plurality of compute resources in a compute environment to process a workload will satisfy a service level specified in a service level agreement associated with the workload;
determining that making a scheduling change for another workload in the compute environment will make available at least one compute resource of the plurality of compute resources not in the first set of compute resources and that processing the workload using the at least one compute resource will provide a better service level than the service level specified in the service level agreement;
determining a cost for making the scheduling change; and
in response to determining that the cost is less than an increased efficiency associated with utilization of the plurality of compute resources caused by the scheduling change:
making available the at least one compute resource not in the first set of compute resources; and
processing the workload using the at least one compute resource.

### Claim 2 (depends on 1)

The method of claim 1, further comprising making the at least one compute resource available irrespective of a priority level of the workload.

### Claim 3 (depends on 1)

The method of claim 1, further comprising determining that making the at least one compute resource available will provide the better service level based on the cost.

### Claim 4 (depends on 1)

The method of claim 1, further comprising provisioning the at least one compute resource for the workload.

### Claim 5 (depends on 1)

The method of claim 1, further comprising determining an availability of the first set of compute resources in terms of one or more of: a required operating system, hardware architecture, network adapters, real memory, and virtual memory.

### Claim 6 (depends on 1)

The method of claim 1, further comprising determining an availability of the first set of compute resources in tarns of one or more of: internal and external disk storage, a software application, a resource state, a reservation, and a political policy.

### Claim 7 (depends on 1)

The method of claim 1, further comprising determining a time frame in which the workload must complete to fulfill the service level.

### Claim 8

A non-transitory computer-storage medium having stored therein instructions which, when executed by a processor, cause the processor to perform operations comprising:
determining that using a first set of compute resources of a plurality of compute resources in a compute environment to process a workload will satisfy a service level specified in a service level agreement associated with the workload;
determining that making a scheduling change for another workload in the compute environment will make available at least one compute resource of the plurality of compute resources not in the first set of compute resources and that processing the workload using the at least one compute resource will provide a better service level than the service level specified in the service level agreement;
determining a cost for making the scheduling change; and
in response to determining that the cost is less than an increased efficiency associated with utilization of the plurality of compute resources caused by the scheduling change:
making available the at least one compute resource not in the first set of compute resources; and
processing the workload using the at least one compute resource.

### Claim 9 (depends on 8)

The non-transitory computer-storage medium of claim 8, further comprising instructions which, when executed by the processor, cause the processor to make the at least one compute resource available irrespective of a priority level of the workload.

### Claim 10 (depends on 8)

The non-transitory computer-storage medium of claim 8, further comprising instructions which, when executed by the processor, cause the processor to determine that making the at least one compute resource available will provide e better service level based on the cost.

### Claim 11 (depends on 8)

The non-transitory computer-storage medium of claim 8, further comprising instructions which, when executed by the processor, cause the processor to provision the at least one compute resource for the workload.

### Claim 12 (depends on 8)

The non-transitory computer-storage medium of claim 8, further comprising instructions which, when executed by the processor, cause the processor to determine an availability of the first set of compute resources in terms of one or more of: a required operating system, hardware architecture, network adapters, real memory, and virtual memory.

### Claim 13 (depends on 8)

The non-transitory computer-storage medium of claim 8, further comprising instructions which, when executed by the processor, cause the processor to determine an availability of the first set of compute resources in terms of one or more of: internal and external disk storage, a software application, a resource state, a reservation, and a political policy.

### Claim 14 (depends on 8)

The non-transitory computer-storage medium of claim 8, further comprising instructions which, when executed by the processor, cause the processor to determine a time frame in which the workload must complete to fulfill the service level.

### Claim 15

A system comprising:
a processor; and
a computer-readable storage medium having stored therein instructions which, when executed by the processor, cause the processor to perform operations comprising:
determining that using a first set of compute resources of a plurality of compute resources in a compute environment to process a workload will satisfy a service level specified in a service level agreement associated with the workload;
determining that making a scheduling change for another workload in the compute environment will make available at least one compute resource of the plurality of compute resources not in the first set of compute resources and that processing the workload using the at least one compute resource will provide a better service level than the service level specified in the service level agreement;
determining a cost for making the scheduling change; and
in response to determining that the cost is less than an increased efficiency associated with utilization of the plurality of compute resources caused by the scheduling change:
making available the at least one compute resource not in the first set of compute resources; and
processing the workload using the at least one compute resource.

### Claim 16 (depends on 15)

The system of claim 15, further comprising instructions which, when executed by the processor, cause the processor to make the at least one compute resource available irrespective of a priority level of the workload.

### Claim 17 (depends on 15)

The system of claim 15, further comprising instructions which, when executed by the processor, cause the processor to determine that making the at least one compute resource available rill provide the better service level based on the cost.

### Claim 18 (depends on 15)

The system of claim 15, further comprising instructions when executed by the processor, cause the processor to provision the at least one compute resource for the workload.

### Claim 19 (depends on 15)

The system of claim 15, further comprising instructions which, when executed by the processor, cause the processor to determine a time frame in which the workload must complete to fulfill the service level.

### Claim 20 (depends on 15)

The system of claim 15, further comprising instructions which, when executed by the processor, cause the processor to determine an availability of the first set of compute resources in terms of one or more of: a required operating system, hardware architecture, network adapters, real memory, and virtual memory.
