# US 11,307,627 B2 · Systems and methods for reducing stranded power capacity

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

- Number: US 11,307,627 B2
- Document ID: US11307627B2
- Status: Granted
- Kind: B2
- Application number: 16/863,217
- Filed: 2020-04-30
- Published: 2021-11-04
- Granted: 2022-04-19
- Earliest claimed: 2020-04-30
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Torsten Wilde; Andy Warner; Steven Dean; Steven Martin; Pat Donlin
- Web page: https://patentgrep.com/patent/US11307627B2

## CPC

- G06F 1/3203: Power management, i.e. event-based initiation of a power-saving mode
- G06F 1/30: Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations (for resetting only G06F1/24)
- G06F 1/3206: Monitoring of events, devices or parameters that trigger a change in power modality
- G06F 1/3234: Power saving characterised by the action undertaken
- G06F 9/4893: {taking into account power or heat criteria (power management in computers in general G06F1/3203; thermal management in computers in general G06F1/206)}
- G06F 9/5094: {where the allocation takes into account power or heat criteria (power management in computers in general G06F1/3203; thermal management in computers in general G06F1/206)}
- G06Q 50/06: Energy or water supply
- H04L 41/0833: for reduction of network energy consumption
- G06F 1/3287: by switching off individual functional units in the computer system
- 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)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- 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

Systems and methods described herein make previously stranded power capacity (power that is provisioned for a data center according to a computing system's nameplate power consumption but is currently not useable) available to the data center. Systems described herein generate empirical power profiles that specify expected upper bounds for the power consumption levels that applications trigger. Using the upper bounds for application power-consumption levels, a computing system described herein can reliably release part of its provisioned nameplate power for other systems or data center consumers, reducing the amount of stranded power in a data center. The method described herein avoids performance penalties for most jobs by using sensor measurements made at a rapid rate explained herein to ensure that a system power cap based on running application's measured peak power consumption is reliable with reference to the power capacitance inherent in the computing system.

## Claims

### Claim 1

A method comprising:
receiving a first electronic request that specifies a first job to be performed by a first software application;
receiving a second electronic request that specifies a second job to be performed by a second software application;
performing a first test job by executing the first application on a first individual computing node in the cluster of computing nodes;
determining a first rate at which the first individual computing node consumes power while the first test job is performed on the first individual computing node;
storing the first rate in a first power profile that is associated with the first application as a first power-consumption-rate upper bound;
retrieving the first power-consumption-rate upper bound from the first power profile associated with the first application;
retrieving a second power-consumption-rate upper bound from a second power profile that is associated with the second application;
determining that a sum of the first power-consumption upper bound and the second power-consumption upper bound does not exceed a predefined power-consumption threshold for a cluster of computing nodes; and
based on the determination that the sum does not exceed the predefined power-consumption threshold, performing the first job and the second job concurrently in the cluster of computing nodes by executing the first application and the second application.

### Claim 2 (depends on 1)

The method of claim 1, further comprising, prior to determining the sum:
performing a second test job by executing the second application on a second individual computing node in the cluster of computing nodes;
determining a second rate at which the second individual computing node consumes power while the second test job is performed on the second individual computing node; and
storing the second rate in the second power profile as the second power-consumption-rate upper bound.

### Claim 3 (depends on 2)

The method of claim 2, wherein:
the first test job is performed while a first processor of the first individual computing node is running at a clock speed that exceeds a clock speed specified by a manufacturer for the first processor; and
the second test job is performed while a second processor of the second individual computing node is running in at a clock speed that exceeds a clock speed specified by a manufacturer for the second processor.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining the first rate at which the first individual computing node consumes power comprises:
collecting a series of sensor readings from a sensor associated with the first individual computing node, wherein a time interval between consecutive sensor readings in the series is no more than half of the computing system power capacitance.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining an actual power-consumption rate at which an individual computing node in the cluster consumes power while the first job and the second job are performed concurrently in the cluster and while the first application and the second application are concurrently running on the individual compute node;
determining that the actual power-consumption rate exceeds the sum; and
updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound based on the determination that the actual power-consumption rate exceeds the sum.

### Claim 6 (depends on 5)

The method of claim 5, wherein updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound comprises:
after the first job and the second job have been completed, re-performing the first job by executing the first application on a first individual computing node in the cluster of computing nodes while refraining from executing the second application concurrently with the first application on the first individual computing node;
determining an updated first rate at which the first individual computing node consumes power while the first job is re-performed on the first individual computing node; and
storing the updated first rate in the first power profile as the first power-consumption-rate upper bound.

### Claim 7 (depends on 5)

The method of claim 5, wherein updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound comprises:
determining a difference by subtracting the sum from the actual power-consumption rate;
adding the difference to the first power-consumption-rate upper bound to determine an updated first power-consumption-rate upper bound;
adding the difference to the second power-consumption-rate upper bound to determine an updated second power-consumption-rate upper bound;
storing the updated first power-consumption-rate upper bound in the first power profile; and
storing the updated second power-consumption-rate upper bound in the second power profile.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
prior to receiving the second electronic request that specifies the second job, receiving an additional electronic request that specifies an additional job to be performed by an additional software application;
retrieving an additional power-consumption-rate upper bound from an additional power profile that is associated with the additional application;
determining that an additional sum of the first power-consumption upper bound and the additional power-consumption upper bound exceeds the predefined power-consumption threshold for the cluster of computing nodes; and
postponing performance of the additional job in the cluster of computing nodes until at least the first job is completed.

### Claim 9

A system comprising:
one or more processors; and
a memory storing instructions that, when executed on the one or more processors, perform a set of actions, the set of actions comprising:
receiving a first electronic request that specifies a first job to be performed by a first software application;
receiving a second electronic request that specifies a second job to be performed by a second software application;
performing a first test job by executing the first application on a first individual computing node in the cluster of computing nodes;
determining a first rate at which the first individual computing node consumes power while the first test job is performed on the first individual computing node;
storing the first rate in a first power profile that is associated with the first application as a first power-consumption-rate upper bound;
retrieving the first power-consumption-rate upper bound from the first power profile associated with the first application;
retrieving a second power-consumption-rate upper bound from a second power profile that is associated with the second application;
determining that a sum of the first power-consumption upper bound and the second power-consumption upper bound does not exceed a predefined power-consumption threshold for a cluster of computing nodes; and
based on the determination that the sum does not exceed the predefined power-consumption threshold, performing the first job and the second job concurrently in the cluster of computing nodes by executing the first application and the second application.

### Claim 10 (depends on 9)

The system of claim 9, wherein the set of actions further comprises, prior to determining the sum:
performing a second test job by executing the second application on a second individual computing node in the cluster of computing nodes;
determining a second rate at which the second individual computing node consumes power while the second test job is performed on the second individual computing node; and
storing the second rate in the second power profile as the second power-consumption-rate upper bound.

### Claim 11 (depends on 10)

The system of claim 10, wherein:
the first test job is performed while a first processor of the first individual computing node is running at a clock speed that exceeds a clock speed specified by a manufacturer for the first processor; and
the second test job is performed while a second processor of the second individual computing node is running in at a clock speed that exceeds a clock speed specified by a manufacturer for the second processor.

### Claim 12 (depends on 9)

The system of claim 9, wherein determining the first rate at which the first individual computing node consumes power comprises:
collecting a series of sensor readings from a sensor associated with the first individual computing node, wherein a time interval between consecutive sensor readings in the series is no more than half of the computing system power capacitance.

### Claim 13 (depends on 9)

The system of claim 9, wherein the set of actions further comprises:
determining an actual power-consumption rate at which an individual computing node in the cluster consumes power while the first job and the second job are performed concurrently in the cluster and while the first application and the second application are concurrently running on the individual compute node;
determining that the actual power-consumption rate exceeds the sum; and
updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound based on the determination that the actual power-consumption rate exceeds the sum.

### Claim 14 (depends on 13)

The system of claim 13, wherein updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound comprises:
after the first job and the second job have been completed, re-performing the first job by executing the first application on a first individual computing node in the cluster of computing nodes while refraining from executing the second application concurrently with the first application on the first individual computing node;
determining an updated first rate at which the first individual computing node consumes power while the first job is re-performed on the first individual computing node; and
storing the updated first rate in the first power profile as the first power-consumption-rate upper bound.

### Claim 15 (depends on 13)

The system of claim 13, wherein updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound comprises:
determining a difference by subtracting the sum from the actual power-consumption rate;
adding the difference to the first power-consumption-rate upper bound to determine an updated first power-consumption-rate upper bound;
adding the difference to the second power-consumption-rate upper bound to determine an updated second power-consumption-rate upper bound;
storing the updated first power-consumption-rate upper bound in the first power profile; and
storing the updated second power-consumption-rate upper bound in the second power profile.

### Claim 16 (depends on 9)

The system of claim 9, wherein the set of actions further comprises:
prior to receiving the second electronic request that specifies the second job, receiving an additional electronic request that specifies an additional job to be performed by an additional software application;
retrieving an additional power-consumption-rate upper bound from an additional power profile that is associated with the additional application;
determining that an additional sum of the first power-consumption upper bound and the additional power-consumption upper bound exceeds the predefined power-consumption threshold for the cluster of computing nodes; and
postponing performance of the additional job in the cluster of computing nodes until at least the first job is completed.

### Claim 17

A non-transitory computer-readable storage medium containing instructions thereon that, when executed on a processor, perform the following set of actions:
receiving a first electronic request that specifies a first job to be performed by a first software application;
receiving a second electronic request that specifies a second job to be performed by a second software application;
performing a first test job by executing the first application on a first individual computing node in the cluster of computing nodes;
determining a first rate at which the first individual computing node consumes power while the first test job is performed on the first individual computing node;
storing the first rate in a first power profile as the first power-consumption-rate upper bound;
retrieving the first power-consumption-rate upper bound from the first power profile associated with the first application;
retrieving a second power-consumption-rate upper bound from a second power profile that is associated with the second application;
determining that a sum of the first power-consumption upper bound and the second power-consumption upper bound does not exceed a predefined power-consumption threshold for a cluster of computing nodes; and
based on the determination that the sum does not exceed the predefined power-consumption threshold, performing the first job and the second job concurrently in the cluster of computing nodes by executing the first application and the second application.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the set of actions further comprises, prior to determining the sum:
performing a second test job by executing the second application on a second individual computing node in the cluster of computing nodes;
determining a second rate at which the second individual computing node consumes power while the second test job is performed on the second individual computing node; and
storing the second rate in the second power profile as the second power-consumption-rate upper bound.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the set of actions further comprises:
determining an actual power-consumption rate at which an individual computing node in the cluster consumes power while the first job and the second job are performed concurrently in the cluster;
determining that the actual power-consumption rate exceeds the sum; and
updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound based on the determination that the actual power-consumption rate exceeds the sum.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, wherein updating the first power-consumption-rate upper bound or the second power-consumption-rate upper bound comprises:
determining a difference by subtracting the sum from the actual power-consumption rate;
adding the difference to the first power-consumption-rate upper bound to determine an updated first power-consumption-rate upper bound;
adding the difference to the second power-consumption-rate upper bound to determine an updated second power-consumption-rate upper bound;
storing the updated first power-consumption-rate upper bound in the first power profile; and
storing the updated second power-consumption-rate upper bound in the second power profile.
