IP Library Granted Patent US 9,753,782
Granted Patent B2
US 9,753,782 · App. 14/655,407 · Granted Sep 5, 2017

Resource consumption optimization

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,753,782
App. No.
14/655,407
Granted
Sep 5, 2017
Kind
B2
Abstract

In some examples, in a supply-and-demand system, e.g., a cloud computing environment or an electrical grid, a coordinator may collect resource consumption data from one or more consuming entities. Based on the collected resource consumption data, the coordinator may be configured to predict resource consumption requirement of each consuming entity in a subsequent time period. Further, in accordance with the prediction, the coordinator may allocate the resources to the consuming entities or recycle the resources currently consumed by the consuming entities.

Claims (76)

1. A method for optimizing resource consumption comprising:

collecting historic resource consumption data of an application executing on one or more computing nodes;

generating a historic resource consumption pattern based on the historic resource consumption data;

generating one or more reference patterns based on the historic resource consumption data;

predicting resource consumption requirements of the application during a subsequent execution time period based on the historic resource consumption pattern and the one or more reference patterns, wherein the predicting comprises:

calculating multiple inertial vectors for the historic resource consumption pattern and each of the one or more reference patterns, and

generating a summed vector by combining the multiple inertial vectors to indicate a resource consumption variation in the subsequent execution time period, and wherein the generating the summed vector comprises:

calculating an affinity value for each of the multiple inertial vectors calculated for the one or more reference patterns, and

mapping the multiple inertial vectors calculated for the one or more reference patterns to the historic resource consumption pattern based on the calculated affinity value; and

allocating computing resources of the one or more computing nodes for execution of the application in the subsequent execution time period based on the predicted resource consumption requirements.

2. The method of claim 1 , wherein the generating the one or more reference patterns comprises:

sampling the collected historic resource consumption data at different sampling rates; and

selecting a subset of the sampled historic resource consumption data to generate one of the one or more reference patterns.

3. The method of claim 1 , wherein the allocating comprises:

determining, for each of the one or more computing nodes, total computing resources including presently consumed computing resources and available computing resources;

determining a current resource consumption of the application;

allocating the available computing resources to the application when the predicted resource consumption requirements are greater than the determined current resource consumption; and

recycling one or more of the computing resources allocated to the application when the predicted resource consumption requirements are less than the determined current resource consumption.

4. The method of claim 3 , wherein the allocating of the available computing resources comprises:

arranging the one or more computing nodes in an ascending order of respective amounts of available computing resources; and

sequentially allocating the available computing resources of the one or more computing nodes in the ascending order until the allocated computing resources equal a difference between the predicted resource consumption requirements and the determined current resource consumption.

5. The method of claim 3 , wherein the recycling comprises:

identifying, for each of the one or more computing nodes, the one or more computing resources allocated to the application;

arranging the one or more computing nodes in a descending order of respective amounts of the allocated computing resources; and

sequentially recycling the allocated computing resources in accordance with the descending order until the recycled allocated computing resources equal a difference between the predicted resource consumption requirements and the determined current resource consumption.

6. A non-transitory computer-readable medium that stores executable-instructions that, when executed, cause one or more processors to perform operations comprising:

collecting historic power consumption data by a consuming entity that consumes power from one or more power providers;

generating a historic power consumption pattern based on the collected historic power consumption data;

generating one or more reference patterns based on the generated historic power consumption data;

predicting power consumption requirements of the consuming entity during a subsequent time period based on the historic power consumption pattern and the one or more reference patterns, wherein the predicting comprises:

calculating multiple inertial vectors for the historic power consumption pattern and each of the one or more reference patterns, and

generating a summed vector by combining the multiple inertial vectors to indicate a power consumption variation in the subsequent time period, and wherein the generating comprises:

calculating an affinity value for each of the multiple inertial vectors calculated for the one or more reference patterns, and

mapping the multiple inertial vectors calculated for the one or more reference patterns to the historic power consumption pattern based on the calculated affinity value; and

allocating power from the one or more power providers to the consuming entity in the subsequent time period based on the predicted power consumption requirements.

7. The computer-readable medium of claim 6 , wherein the generating the one or more reference patterns comprises:

sampling the collected historic power consumption data at different sampling rates; and

selecting a subset of the sampled historic power consumption data to generate one of the one or more reference patterns.

8. The computer-readable medium of claim 6 , wherein the allocating comprises:

determining, for each of the one or more power providers, total power including presently consumed power and available power;

determining a current power consumption by the consuming entity;

allocating the available power to the consuming entity when the predicted power consumption requirements are greater than the current power consumption; and

reallocating power allocated to the consuming entity to other consuming entities when the predicted power consumption requirements are less than the current power consumption.

9. The computer-readable medium of claim 8 , wherein the allocating the available power comprises:

arranging the one or more power providers in an ascending order of the available power; and

sequentially allocating the power of the one or more power providers in the ascending order until the allocated power equals a difference between the predicted power consumption requirements and the determined current power consumption.

10. The computer-readable medium of claim 8 , wherein the reallocating comprises:

identifying, for each of the one or more power providers, the power allocated to the consuming entity;

arranging the one or more power providers in a descending order of respective amounts of the allocated power; and

sequentially reallocating the allocated power in accordance with the descending order until the reallocated power equals a difference between the predicted power consumption requirements and the determined current power consumption.

11. A system, comprising:

a processor coupled to a memory that stores program instructions, wherein when the processor executes the program instructions, the system is configured to:

collect historic resource consumption data of an application that executes on one or more computing nodes;

generate a historic resource consumption pattern based on the collected historic resource consumption data;

generate one or more reference patterns based on the collected historic resource consumption data;

predict resource consumption requirements of the application in a subsequent execution time period based on the historic resource consumption pattern and the one or more reference patterns, wherein to predict, the system is configured to:

calculate multiple inertial vectors for the historic resource consumption pattern and each of the one or more reference patterns, and

generate a summed vector by combining the multiple inertial vectors, wherein the summed vector indicates a consumption variation in the subsequent execution time period, and wherein to generate the summed vector, the system is configured to:

calculate an affinity value for each of the multiple inertial vectors calculated for the one or more reference patterns, and

map the multiple inertial vectors calculated for the one or more reference patterns to the historic resource consumption pattern based on the calculated affinity value; and

allocate computing resources of the one or more computing nodes for execution of the application in the subsequent execution time period based on the predicted resource consumption requirements.

12. The system of claim 11 , wherein to generate the one or more reference patterns, the system is configured to:

sample the collected historic resource consumption data at different sampling rates; and

select a subset of the sampled historic resource consumption data to generate one of the one or more reference patterns.

13. The system of claim 11 , wherein to allocate the computing resources, the system is further configured to:

determine, for each of the one or more computing nodes, total computing resources including presently consumed computing resources and available computing resources;

determine a current resource consumption of the application;

allocate the available computing resources to the application when the predicted resource consumption requirements are greater than the determined current resource consumption; and

recycle one or more computing resources previously allocated to the application when the predicted resource consumption requirements area less than the determined current resource consumption.

14. The system of claim 13 , wherein to allocate the available computing resources, the system is further configured to:

arrange the one or more computing nodes in an ascending order of respective amounts of the available computing resources; and

sequentially allocate the computing resources of the one or more computing nodes in accordance with the ascending order until the allocated computing resources equal a difference between the predicted resource consumption requirements and the determined current consumption.

15. The system of claim 13 , wherein to recycle, the system is further configured to:

identify, for each of the one or more computing nodes, the one or more computing resources allocated to the application;

arrange the one or more computing nodes in a descending order of respective amounts of the allocated computing resources; and

sequentially recycle the allocated one or more computing resources in accordance with the descending order until the recycled allocated computing resources equal a difference between the predicted resource consumption requirements and the determined current consumption.

Assignments (2)
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2015
From: FANG, JUN; LI, DAQI
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 035966/0191 →