# US 2025/0147784 A1 · Server-side control of power based on service-level agreement

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

- Number: US 2025/0147784 A1
- Document ID: US20250147784A1
- Status: Published application
- Kind: A1
- Application number: 18/500,663
- Filed: 2023-11-02
- Published: 2025-05-08
- Earliest claimed: 2023-11-02
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Arun Venkatasubbaiah HODIGERE; Anand HARIDASS; Karunakara KOTARY
- Web page: https://patentgrep.com/patent/US20250147784A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/48: Program initiating; Program switching, e.g. by interrupt
- 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)}
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- 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)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- 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

Various embodiments described herein dynamically control the distribution of power to individual components of a node in an overprovisioned rack, node, or accelerators of a data center based on service-level agreements (SLAs) defining priorities for workloads for certain user accounts. The SLA is used to determine a throttling order for throttling the accelerators. Controlling the distribution of power in the node includes throttling at an accelerator or coprocessor, based on the throttling order or SLA, until the power consumption is at or below a power policy limit. In this manner, various embodiments discussed herein provide (1) granular control over the execution of tasks in an overprovisioned rack and (2) a user experience consistent with a priority level defined by an SLA, while complying with power policy limit(s) to improve the lifespan and operation of hardware, as well as to reduce the wear and tear experienced by overprovisioned hardware.

## Claims

### Claim 1

A system to throttle at least one GPU of a node based on a power policy limit and a throttling order, the system comprising:
at least one computer processor; and
computer storage media storing computer-useable instructions that, when used by the at least one computer processor, cause the system to perform operations comprising:
obtaining, at the node of the system, a first indication indicative of (1) a plurality of tasks for execution and (2) a corresponding user account associated with each task;
accessing a plurality of computer resource allocation parameters defining a plurality of priority levels, wherein each corresponding user account is associated with a respective priority level, wherein the respective priority levels of the user accounts collectively define the throttling order for a plurality of GPUs to execute the plurality of tasks;
based on the power policy limit associated with the node, determining that a power consumption associated with the execution of the plurality of tasks exceeds the power policy limit associated with the node; and
based on the power consumption exceeding the power policy limit and based on the throttling order, throttling the at least one GPU of the plurality of GPUs until the power consumption is at or below the power policy limit associated with the node.

### Claim 2 (depends on 1)

The system of claim 1, wherein throttling the at least one GPU comprises reallocating resources from (1) a first virtual machine assigned to a first set of tasks of the plurality of tasks to (2) a second virtual machine assigned to a second set of tasks of the plurality of tasks, wherein the first set of tasks is associated with a user account having a priority level that is lower than a priority level of a user account associated with the second set of tasks.

### Claim 3 (depends on 1)

The system of claim 1, wherein throttling the at least one GPU comprises shutting down a virtual machine assigned to a first set of tasks of a plurality of tasks, wherein the first set of tasks is associated with a user account having a priority level that is lower than a priority level of a user account associated with a second set of tasks of the plurality of tasks.

### Claim 4 (depends on 1)

The system of claim 1, wherein throttling the at least one GPU comprises at least one of: lowering a frequency or lowering a voltage of the at least one GPU.

### Claim 5 (depends on 1)

The system of claim 1, wherein determining the throttling order comprises:
accessing at least one service-level agreement (SLA) defining the plurality of computer resource allocation parameters;
for each task of the plurality of tasks:
determining the corresponding user account and assigning a corresponding task of the plurality of tasks to one or more GPUs of the plurality of GPUs; and
determining, from the SLA, a priority level of each user account, each priority level of the plurality of priority levels associated with a throttling order value; and
ranking the plurality of GPUs based on the throttling order value of the corresponding user account associated with a task to be executed by a corresponding GPU, wherein a highest ranked or lowest ranked GPU is first to be throttled based on the power consumption exceeding the power policy limit.

### Claim 6 (depends on 1)

The system of claim 1, wherein the power policy limit comprises at least one of:
a first power policy limit defining a maximum power for a rack comprising the node, wherein a rack manager of the rack compares the power of the rack against the first power policy limit;
a second power policy limit defining a maximum power for the node, wherein a motherboard (MB) baseboard management controller (BMC) compares the power of the node against the second power policy limit; or
a third power policy limit defining a maximum power for a set of GPUs of the node, wherein a universal baseboard (UBB) BMC compares the power of the set of GPUs against the third power policy limit, wherein the power consumption exceeds the power policy limit when (1) a power output of the rack exceeds the maximum power defined by the first power policy limit, (2) a power output of the node exceeds the maximum power defined by the second power policy limit, or (3) a power output of the set of GPUs exceeds the maximum power defined by the third power policy limit.

### Claim 7 (depends on 1)

The system of claim 1, wherein the operations further comprise:
assigning each task of the plurality of tasks to a corresponding GPU of the plurality of GPUs based on availability of the corresponding GPU and a computational resource consumption associated with the task, wherein each GPU of the plurality of GPUs is throttled based on the priority level of a user account associated with the task that is assigned to a respective GPU.

### Claim 8 (depends on 1)

The system of claim 1, wherein throttling the at least one GPU comprises at least one of:
causing a rack manager to distribute power within a rack comprising the node until the power consumption is equal to or less than the power policy limit associated with the node;
causing an MB BMC to distribute power within the node or among the plurality of GPUs until the power consumption is equal to or less than the power policy limit associated with the node; or
causing a UBB BMC to distribute power among the plurality of GPUs until the power consumption is equal to or less than the power policy limit associated with the node.

### Claim 9 (depends on 1)

The system of claim 1, wherein a first GPU assigned a first task associated with a first user account having a lower priority level is throttled before a second GPU assigned a second task associated with a second user account having a higher priority level.

### Claim 10 (depends on 1)

The system of claim 1, wherein throttling the at least one GPU of the plurality of GPUs comprises iteratively throttling a set of GPUs of the plurality of GPUs until the power consumption is at or below the power policy limit.

### Claim 11

A computer-implemented method, comprising:
obtaining, at a node of a rack, a first indication indicative of (1) a plurality of tasks for execution and (2) a corresponding user account associated with each task;
accessing at least one service-level agreement (SLA) defining a plurality of priority levels, wherein each corresponding user account is associated with a respective priority level, wherein the respective priority levels of the user accounts collectively define a throttling order for a plurality of coprocessors to execute the plurality of tasks;
based on a power policy limit associated with the node, determining that a power consumption associated with the execution of the plurality of tasks exceeds the power policy limit associated with the node; and
based on the power consumption exceeding the power policy limit and based on the throttling order, throttling at least one coprocessor of the plurality of coprocessors until the power consumption is at or below the power policy limit associated with the node.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, wherein a coprocessor executing a task executed in a production environment is associated with a higher priority level than a coprocessor executing the task in a non-production environment, wherein the task executed in the non-production environment is throttled before the task executed in the production environment.

### Claim 13 (depends on 11)

The computer-implemented method of claim 11, wherein the plurality of tasks are associated with an artificial intelligence (AI) workload.

### Claim 14 (depends on 11)

The computer-implemented method of claim 11, wherein the first indication is obtained from a workflow orchestrator configured to create, deploy, or monitor a virtual machine on the at least one coprocessor based on the plurality of tasks.

### Claim 15 (depends on 11)

The computer-implemented method of claim 11, wherein the at least one coprocessor comprises at least one of: a graphics processing unit (GPU), a field-programmable gate array (FPGA), or an application-specific integrated circuit (ASIC).

### Claim 16 (depends on 11)

The computer-implemented method of claim 11, wherein the power policy limit associated with the node is the same across every node of the rack.

### Claim 17

One or more computer storage media having computer-executable instructions embodied thereon that, when executed by one or more processors cause the one or more processors to perform operations comprising:
obtaining, at a node of a data center, a first indication indicative of (1) a plurality of tasks for execution and (2) a corresponding user account associated with each task;
accessing at least one service-level agreement (SLA) defining a plurality of priority levels, wherein each corresponding user account is associated with a respective priority level, wherein the respective priority levels of the user accounts collectively define a throttling order for a plurality of coprocessors to execute the plurality of tasks;
based on a power policy limit associated with the node, determining that a power consumption associated with the execution of the plurality of tasks exceeds the power policy limit associated with the node; and
based on the power consumption exceeding the power policy limit and based on the throttling order, throttling at least one coprocessor of the plurality of coprocessors until the power consumption is at or below the power policy limit associated with the node.

### Claim 18 (depends on 17)

The one or more computer storage media of claim 17, wherein throttling the at least one coprocessor comprises reallocating resources from (1) a first virtual machine assigned to a first set of tasks of the plurality of tasks to (2) a second virtual machine assigned to a second set of tasks of the plurality of tasks, wherein the first set of tasks is associated with a user account having a priority level that is lower than a priority level of a user account associated with the second set of tasks.

### Claim 19 (depends on 17)

The one or more computer storage media of claim 17, wherein throttling the at least one coprocessor comprises shutting down a virtual machine assigned to a first set of tasks of a plurality of tasks, wherein the first set of tasks is associated with a user account having a priority level that is lower than a priority level of a user account associated with a second set of tasks of the plurality of tasks.

### Claim 20 (depends on 17)

The one or more computer storage media of claim 17, wherein throttling the at least one coprocessor comprises at least one of:
causing a rack manager to distribute power within a rack comprising the node until the power consumption is equal to or less than the power policy limit associated with the node;
causing an MB BMC to distribute power within the node or among the plurality of coprocessors until the power consumption is equal to or less than the power policy limit associated with the node; or
causing a UBB BMC to distribute power among the plurality of coprocessors until the power consumption is equal to or less than the power policy limit associated with the node.
