Search

US-12625540-B2 - Intelligent power optimization mechanism via an enhanced CPU power management algorithm

US12625540B2US 12625540 B2US12625540 B2US 12625540B2US-12625540-B2

Abstract

The presently disclosed technology provides methods and systems for optimally allocating power among workloads executing on a computer system through use of a power management algorithm. For example, according to the present technology a plurality of CPUs within a server can be divided into multiple groups according to application workloads. Workloads can be distributed to the CPUs as needed by a workload scheduler, and the workload scheduler can provide the CPU IDs to a power manager, enabling the power manager to optimize power settings. Each group of CPUs can be assigned an optimal power profile tailored to its respective situation.

Inventors

  • Ananya Simlai
  • Ming Wen
  • Ian Kenneth Coolidge
  • Santanu Dasgupta

Assignees

  • GOOGLE LLC

Dates

Publication Date
20260512
Application Date
20231013

Claims (16)

  1. 1 . A method for managing power in a computing device, the method comprising: receiving a number of isolated central processing units (CPUs), the number of isolated CPUs indicating a quantity of CPUs of the computing device set as isolated CPUs; allocating the isolated CPUs based on the number of isolated CPUs; identifying CPU IDs of reserved CPUs, the reserved CPUs comprising CPUs of the computing device that are not set as the isolated CPUs; and controlling P-states and C-states of one or more of the reserved CPUs based on the identified CPU IDs, wherein the isolated CPUs handle only workloads for user applications and the reserved CPUs handle only workloads for a platform, wherein allocating the isolated CPUs comprises considering the utilization of all CPUs of the computing device, wherein when a workload of a particular user application requires a workload-specific number of CPUs, the workload-specific number of CPUs indicating a quantity of isolated CPUs for exclusive use on the workload of the particular user application, the method further comprises allocating, by a workload scheduler, one or more of the isolated CPUs as workload-specific CPUs for the workload of the particular user application based on a new power profile, the new power profile being different from a general power profile and corresponding to the workload of the particular user application; identifying CPU IDs of the allocated CPUs; and controlling P-states and C-states of the allocated CPUs based on the new power profile; and wherein the controlling the P-states and C-states of the isolated CPUs comprises at least one of setting a minimum frequency for one or more of the isolated CPUs or determining a maximum idle state for one or more of the reserved CPUs.
  2. 2 . The method of claim 1 , wherein the controlling the P-states and C-states of the reserved CPUs comprises at least one of setting a minimum frequency for one or more of the reserved CPUs or determining a maximum idle state for one or more of the reserved CPUs.
  3. 3 . The method of claim 2 , wherein the controlling the P-states and C-states of the reserved CPUs comprises setting the minimum frequency, and wherein the minimum frequency is set incrementally, beginning with an initial value and ending with a final value.
  4. 4 . The method of claim 2 , wherein the minimum frequency is set by a P/C state controller.
  5. 5 . The method of claim 1 , wherein receiving comprises receiving the number of isolated CPUs via an interface provided by a workload scheduler.
  6. 6 . The method of claim 5 , wherein the identifying CPU IDs of reserved CPUs comprises sending a request for the CPU IDs of reserved CPUs from a power manager to the workload scheduler.
  7. 7 . The method according to claim 6 , wherein the request is one of periodic requests sent from the power manager to the workload scheduler for purposes of identifying the CPU IDs of reserved CPUs.
  8. 8 . The method of claim 1 , further comprising: partitioning the isolated CPUs into a plurality of sets; and controlling the P-states and C-states of the isolated CPUs on a set-by-set basis.
  9. 9 . The method of claim 8 , wherein for each set, each isolated CPU within the set requires a power profile that is the same or similar to one or more power profiles required by each other isolated CPU within the set.
  10. 10 . The method of claim 9 , wherein the controlling the P-states and C-states of the isolated CPUs comprises at least one of setting a minimum frequency for one or more of the isolated CPUs or determining a maximum idle state for one or more of the reserved CPUs.
  11. 11 . The method of claim 10 , wherein the controlling the P-states and C-states of the isolated CPUs comprises setting the minimum frequency, and wherein the minimum frequency is set incrementally, beginning with an initial value and ending with a final value.
  12. 12 . The method of claim 1 , further comprising: setting the general power profile for the isolated CPUs, the general power profile applying to all isolated CPUs; and controlling P-states and C-states of all isolated CPUs based on the general power profile.
  13. 13 . The method of claim 12 , wherein the controlling the P-states and C-states of the isolated CPUs comprises setting the minimum frequency, and wherein the minimum frequency is set incrementally, beginning with an initial value and ending with a final value.
  14. 14 . The method of claim 1 , wherein the identifying the CPU IDs of the allocated CPUs comprises sending a request for the CPU IDs of the allocated CPUs from a power manager to the workload scheduler.
  15. 15 . The method of claim 1 , wherein the controlling the P-states and C-states of the allocated CPUs comprises at least one of setting a minimum frequency for one or more of the allocated CPUs or determining a maximum idle state for one or more of the reserved CPUs.
  16. 16 . The method of claim 15 , wherein the controlling the P-states and C-states of the allocated CPUs comprises setting the minimum frequency, and wherein the minimum frequency is set incrementally, beginning with an initial value and ending with a final value.

Description

BACKGROUND As electronic data volume and network traffic exponentially increase, enterprise customers with on-premises or cloud data center services, as well as communication service providers, are actively seeking cost saving opportunities through server power optimization. Various enterprise workloads and telco workloads run on-premises or in the cloud, and although power management policies already exist, optimizing server power flexibly in such a diverse and complex environment presents challenges. BRIEF SUMMARY It has been recognized that, in view of the desire to optimize server power flexibly in diverse and complex environments, it is advantageous to divide server central processing unit (CPU) cores into multiple groups by the type of workloads the CPU cores process. Such grouping facilitates easier productization and comprehension. These groups can be modified as the server operations to adaptively create a comprehensive power optimization solution tailored to various products and services. The presently disclosed technology provides methods and systems for optimally allocating power among workloads executing on a computer system through use of a power management algorithm. For example, according to the present technology a plurality of CPUs within a server can be divided into multiple groups according to application workloads. Workloads can be distributed to the CPUs as needed by a workload scheduler, and the workload scheduler can provide the CPU IDs to a power manager, enabling the power manager to optimize power settings. Each group of CPUs can be assigned an optimal power profile tailored to its respective situation. In accordance with an aspect of the present technology, a method for managing power in a computing device includes receiving a number of isolated central processing units (CPUs), the number of isolated CPUs indicating a quantity of CPUs of the computing device set as isolated CPUs; allocating the isolated CPUs based on the number of isolated CPUs; identifying, by one or more processors, CPU IDs of reserved CPUs, the reserved CPUs including CPUs of the computing device that are not set as the isolated CPUs; and controlling, by one or more processors, P-states and C-states of one or more of the reserved CPUs based on the identified CPU IDs. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of an example server computing device on which power optimization according to aspects of the disclosure may be implemented. FIG. 2 is a block diagram of a distributed cloud platform in which power optimization according to aspects of the disclosure may be implemented. FIG. 3 is a block diagram of an example processing environment for implementing power optimization within a server computing device according to aspects of the disclosure. FIG. 4 is a sequence diagram showing signal flows among elements of the FIG. 3 processing environment according to an illustrative power management algorithm for setting power states of CPUs assigned to platform-related workloads. FIG. 5 is a sequence diagram showing signal flows among elements of the FIG. 3 processing environment according to an illustrative power management algorithm for setting power states of CPUs assigned to application-related workloads. FIG. 6 is a flow diagram of an example process for performing power management to optimize power consumption by a server computing device. DETAILED DESCRIPTION The technology relates generally to power optimization techniques for computing devices, especially server computing devices. Server computing devices may adaptively apply CPU power profiles to manage power and energy consumption. A power profile consists of a specific setting for an individual CPU or a group of CPUs. It defines how the CPU or the group of CPUs should behave in terms of power consumption when performing a specific application or executing a specific workload. Power profiles may include parameters such as clock speed, voltage, fan speed, and sleep mode settings. These profiles are tailored to optimize power consumption and can vary depending on platform or application-related workloads within a server or system. The server computing devices can each include a power manager. The power manager can include a P/C state controller comprising a P-manager and a C-manager to perform power control tasks by respectively altering P-states and/or C-states of individual CPUs. The power manager can dynamically adjust power consumption by applying a power profile selected by a user to an individual CPU or to a group of CPUs for running applications. The power profile can include one or more states for the individual CPU or group of CPUs, such as operating frequency, power supply voltage, and/or sleep states of the CPUs. The power manager can further dynamically adjust power consumption of the individual CPU or a group of CPUs by communicating with a workload scheduler. The workload scheduler can efficiently allocate workloads to CPUs for app