Power-performance based system management

By receiving workloads, scanning parameters, monitoring total power consumption, generating power distribution and adjusting parameters, the problem of optimizing the power-performance ratio of computer systems in large data centers is solved, achieving performance optimization and cost reduction per unit of power used.

CN115698958BActive Publication Date: 2026-08-04INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2021-06-16
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

Modern computer systems face challenges in effectively balancing performance and total cost of ownership (TCO) in large data centers, especially due to variations in electricity costs caused by power consumption. Existing technologies struggle to optimize the performance per unit of power used by computer systems.

Method used

By receiving workloads, scanning computer system parameters, monitoring total power consumption, generating power distribution, and adjusting parameters based on analysis to optimize the power-performance ratio, compatible workloads are scheduled using a power-performance management system and scheduler.

Benefits of technology

It achieves performance optimization of computer systems per unit of power usage, reduces total cost of ownership, improves hardware utilization efficiency, and reduces infrastructure costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115698958B_ABST
    Figure CN115698958B_ABST
Patent Text Reader

Abstract

A method includes: receiving a workload of a computer system; scanning at least one parameter of the computer system while executing the workload; monitoring one or more characteristics of the computer system while scanning the at least one parameter, the one or more characteristics including the total power consumption of the computer system; generating a power distribution of the workload based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, the power distribution indicating a corresponding selected value for the at least one parameter; and executing the workload based on the corresponding selected value of the at least one parameter.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] Many modern computer systems focus on balancing improved performance with total cost of ownership (TCO), especially in large data centers (e.g., hyperscale data centers). TCO includes total acquisition cost (TCA), maintenance costs, and electricity costs due to power consumption. TCA and maintenance costs are typically fixed investments, but the costs due to power consumption will vary based on the computer system's workload and configuration. Summary of the Invention

[0002] Aspects of the present invention may include methods, computer program products, and systems. One example of the method includes: receiving a workload of a computer system; scanning at least one parameter of the computer system while executing the workload; monitoring one or more characteristics of the computer system, including the total power consumption of the computer system, while scanning the at least one parameter; generating a power distribution of the workload based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, the power distribution indicating corresponding selection values ​​for the at least one parameter; and executing the workload based on the corresponding selection values ​​for the at least one parameter.

[0003] In one aspect, the present invention provides a method comprising: receiving a workload of a computer system; scanning at least one parameter of the computer system while executing the workload; monitoring one or more characteristics of the computer system, including the total power consumption of the computer system, while scanning the at least one parameter; generating a power distribution of the workload based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, the power distribution indicating corresponding selection values ​​for the at least one parameter; and executing the workload based on the corresponding selection values ​​of the at least one parameter.

[0004] Preferably, the present invention provides a method further comprising: receiving one or more constraints on the at least one parameter of the computer system.

[0005] Preferably, the present invention provides a method further comprising: dividing the workload into two or more phases; and wherein scanning the at least one parameter comprises: scanning the at least one parameter for each of the two or more phases; wherein monitoring the one or more characteristics comprises: monitoring the one or more characteristics while scanning the at least one parameter for each of the two or more phases; and wherein generating a power distribution comprises: generating a corresponding power distribution for each of the two or more phases.

[0006] Preferably, the present invention provides a method wherein scanning the at least one parameter includes scanning at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device status.

[0007] Preferably, the present invention provides a method wherein the workload is a first workload, and executing the workload based on the corresponding selection value of the at least one parameter further comprises: comparing the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identifying a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads; and scheduling the compatible workload to execute simultaneously with the first workload.

[0008] Preferably, the present invention provides a method wherein one or more characteristics of the monitored computer system include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

[0009] Preferably, the present invention provides a method further comprising: receiving an initial power distribution of the workload; and wherein generating the power distribution comprises: updating the initial power distribution based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter.

[0010] In another view, the computer management system of the present invention includes: a storage device; and a processor communicatively coupled to the storage device, wherein the processor is configured to: receive a workload of a computer system; iteratively adjust at least one parameter of the computer system while the workload is executed; monitor one or more characteristics of the computer system while adjusting the at least one parameter, the one or more characteristics including the total power consumption of the computer system; generate a power distribution of the workload based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, the power distribution indicating a corresponding selection value for the at least one parameter; store the power distribution on the storage device; and execute the workload based on the power distribution.

[0011] Preferably, the present invention provides a computer management system, wherein the processor is further configured to receive one or more constraints on the at least one parameter of the computer system.

[0012] Preferably, the present invention provides a computer management system, wherein the processor is further configured to: divide the workload into two or more stages; iteratively adjust the at least one parameter for each of the two or more stages; monitor the one or more characteristics while adjusting the at least one parameter for each of the two or more stages; and generate a corresponding power distribution for each of the two or more stages.

[0013] Preferably, the present invention provides a computer management system, wherein the processor is configured to iteratively adjust at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device status.

[0014] Preferably, the present invention provides a computer management system, wherein the workload is a first workload, and the processor is further configured to: compare the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identify a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads; and schedule the compatible workload to execute simultaneously with the first workload.

[0015] Preferably, the present invention provides a computer management system wherein one or more characteristics of the monitored computer system include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk input / output bandwidth, and network bandwidth.

[0016] Preferably, the present invention provides a computer management system, wherein the processor is further configured to: receive an initial power distribution of the workload; and update the initial power distribution based on an analysis of the total power consumption of the computer system monitored while adjusting the at least one parameter.

[0017] In another aspect, the present invention provides a computer management system comprising: a power-performance management engine configured to: scan at least one parameter of a computer system while a workload is being executed; monitor one or more characteristics of the computer system while scanning the at least one parameter, the one or more characteristics including the total power consumption of the computer system; and generate a power distribution of the workload based on an analysis of the monitored total power consumption of the computer system, the power distribution indicating corresponding selection values ​​for the at least one parameter; and a power-performance workload scheduler configured to schedule the workload for execution based on the generated power distribution.

[0018] Preferably, the present invention provides a computer management system, wherein the workload is a first workload, and the power-performance workload scheduler is further configured to schedule the first workload for execution by: comparing the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identifying a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads; and scheduling the compatible workload to execute simultaneously with the first workload.

[0019] In another aspect, the present invention provides a method comprising: comparing corresponding power performance tables for each of a plurality of workloads, each power performance table indicating corresponding values ​​of one or more parameters of a computer system for performing the corresponding workload; and wherein, based on monitoring one or more characteristics of the computer system while iteratively adjusting the one or more parameters, the corresponding values ​​of the one or more parameters, the one or more characteristics including the power consumption of the computer system, are selected; identifying at least two compatible workloads based on the comparison of the corresponding power performance tables; and scheduling the at least two compatible workloads to be performed simultaneously by the computer system.

[0020] Preferably, the present invention provides a method wherein the one or more parameters include at least one of central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device status.

[0021] Preferably, the present invention provides a method wherein one or more monitored characteristics include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

[0022] In another aspect, the present invention provides a computer program product comprising a computer-readable storage medium storing a computer-readable program, wherein the computer-readable program, when executed by a processor, causes the processor to: iteratively adjust at least one parameter of a computer system while a workload is being executed; monitor one or more characteristics of the computer system while adjusting the at least one parameter, the one or more characteristics including the total power consumption of the computer system; generate a power distribution of the workload based on an analysis of the monitored total power consumption of the computer system, the power distribution indicating corresponding selection values ​​for the at least one parameter; and execute the workload based on the generated power distribution.

[0023] Preferably, the present invention provides a computer program product wherein one or more monitored characteristics include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk input / output bandwidth, and network bandwidth.

[0024] Preferably, the present invention provides a computer program product, wherein the computer-readable program is further configured to cause the processor to iteratively adjust the at least one parameter according to one or more constraints on the at least one parameter of the computer system.

[0025] Preferably, the present invention provides a computer program product, wherein the workload is a first workload, and the computer-readable program is further configured to cause the processor to execute the first workload by: comparing the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identifying a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads; and scheduling the compatible workload to execute simultaneously with the first workload.

[0026] Preferably, the present invention provides a computer program product, wherein the computer-readable program is further configured to cause the processor to: divide the workload into two or more stages; iteratively adjust the at least one parameter for each of the two or more stages; monitor the one or more characteristics while adjusting the at least one parameter for each of the two or more stages; and generate a corresponding power distribution for each of the two or more stages.

[0027] Preferably, the present invention provides a computer program product, wherein the computer-readable program is further configured to cause the processor to iteratively adjust at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device state. Attached Figure Description

[0028] It should be understood that the accompanying drawings only depict exemplary embodiments and are therefore not intended to limit the scope. Exemplary embodiments will be described with additional features and details using the drawings, in which:

[0029] Figure 1 This is a block diagram of one embodiment of a computer management system;

[0030] Figure 2 This is a flowchart of one embodiment of a method for managing a computer system;

[0031] Figure 3 This is a block diagram of another embodiment of a computer management system;

[0032] Figure 4 This is a block diagram of another embodiment of a computer management system;

[0033] Figure 5 This is a block diagram of another embodiment of a computer management system;

[0034] Figure 6 An embodiment of a cloud computing environment is described; and

[0035] Figure 7 An example of an abstract model layer is described.

[0036] By convention, features described differently are not drawn to scale, but rather to emphasize specific features relevant to the exemplary embodiments. Detailed Implementation

[0037] In the following detailed description, reference is made to the accompanying drawings, which form a part of the description, and specific illustrative embodiments are shown by way of illustration. However, it should be understood that other embodiments may be utilized, and logical, mechanical, and electrical changes may be made. Furthermore, the methods presented in the drawings and description should not be construed as limiting the order in which the various steps can be performed. Therefore, the following detailed description should not be considered restrictive.

[0038] As mentioned above, some systems focus on balancing improved performance with total cost of ownership (TCO), especially in large data centers (e.g., hyperscale data centers). TCO includes total acquisition cost (TCA), maintenance costs, and electricity costs due to power consumption. TCA and maintenance costs are typically fixed investments. The embodiments described herein are configured to improve or optimize the performance per power (e.g., watts) of a computer system to help reduce TCO.

[0039] Some modern central processing units (CPUs) are able to adjust their frequencies according to different workloads to utilize the CPU's power budget. For example, if the workload is very heavy, the frequency may not reach higher numbers. However, if the workload is light (e.g., one active call and a small portion of the CPU's logic is being used), the CPU frequency can be adjusted to a relatively high frequency. While these techniques can improve power savings in some cases, they can also suffer from various limitations. For example, if a given workload has a performance bottleneck on non-CPU devices such as disks, networks, memory, or graphics processing units (GPUs), the computer system will achieve high performance even with high CPU frequencies and correspondingly high CPU power usage. Additionally, if the workload has conflicts over the CPU's internal computing resources across multiple processes or threads, the CPU will consume more power, and performance improvements will be minimal even with increased CPU frequencies. Furthermore, as frequencies increase and corresponding temperatures rise, CPU thermal demands will typically trigger increased requirements for CPU cooling equipment (e.g., CPU fans), leading to increased cooling equipment power consumption and a decrease in power-performance ratio.

[0040] The embodiments described herein help address the limitations and other constraints discussed. Specifically, the embodiments described in more detail below implement a more comprehensive, dynamic, self-learning, and power-performance-based computer system management approach that can take into account multiple factors, such as workload variations, workload scheduling, overall system power consumption, environmental changes, CPU frequency, and voltage, to provide a more effective management scheme that can improve performance per power used and / or performance per TCO.

[0041] As used herein, the phrases “at least one,” “one or more,” and “and / or” are open-ended expressions that are both connected and separate in operation. For example, each of the expressions “at least one of A, B, and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” and “A, B, and / or C” refers to a single A, a single B, a single C, A and B together, A and C together, B and C together, or A, B, and C together. In other words, “at least one,” “one or more,” and “and / or” means that any combination and any number of items in the list can be used, but not all items in the list are required. Items can be specific objects, things, or categories. For example, in some illustrative instances, “at least one” could be, for example, but not limited to, two items A; one item B; and ten items C; four items B and seven items C; or other suitable combinations.

[0042] Furthermore, the term "a" or "an" entity refers to one or more of the entities. Therefore, the terms "a" (or "an"), "one or more," and "at least one" are used interchangeably herein. It should also be noted that the terms "comprising," "including," and "having" are used interchangeably.

[0043] Furthermore, as used herein, the term "automatic" and its variations refer to any process or operation performed without substantial human input. However, a process or operation can be automatic if input is received prior to its execution, even if substantial or non-substantial human input is used in its execution. Human input is considered substantial if it influences how the process or operation will be performed. Human input consenting to the execution of a process or operation is not considered "substantial."

[0044] Furthermore, as used herein, the term "workload" refers to the amount of processing a computer system must complete within a fixed period of time. For example, workload indicates the expected load in the form of client requests, processing, and communication resources within a specified time period. Therefore, workload includes factors such as the type and rate of requests sent to the computer system, the software packages and applications to be executed, the number of programs / applications running on the computer system, the number of users connecting to the computer system, and the time and processing power consumed by these interactions. Workload can also include work that the computer system is performing in the background. For example, if the computer system contains a file system frequently accessed by other systems, handling these accesses can be a significant part of the overall workload, even if the computer system is not a formal server.

[0045] Figure 1This is a high-level block diagram of one embodiment of a power-performance management system 100 configured to manage a computer system based on power-performance ratio. In other words, the power-performance management system 100 is configured to improve the power-performance ratio of the computer system to reduce the total cost of ownership of the computer system. The power-performance management system 100 may be part of an overall computer system managed by the power-performance management system 100. Alternatively, the managed computer system may include a single device or multiple devices, such as a data center with hundreds or thousands of servers.

[0046] The Power-Performance Management System 100 includes a Power-Performance Management Engine (PPME) 102, a Power-Performance Workload Scheduler 110, and a Power-Performance Table Database 108. The PPME 102 is configured to generate a power-performance table for each of a plurality of workloads to be performed by or currently being performed by a computer system. The corresponding power-performance table for each workload indicates a selected value for at least one parameter of the computer system or device that has been chosen to improve the power-performance rate (e.g., power efficiency) of the computer system or device and thereby reduce the total cost of ownership. The PPME 102 receives various inputs used to determine and generate the power-performance tables for the workloads. For example, inputs may include power usage information, system and / or device characteristics, a performance score for each workload (if available), and an initial power-performance table for the workload (if available). The initial power-performance table may be available for workloads whose distribution has been previously determined by the PPME 102. However, the initial power-performance table is not available for all workloads, such as new workloads or workloads whose distribution has not been previously determined.

[0047] Power usage information may include information about the total power consumption / usage of the computer system, as well as faults related to the power usage of individual components of the computer system. For example, power usage information may include, but is not limited to, CPU power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, etc. Device and / or system characteristics may include, but are not limited to, memory bandwidth, memory latency, device status (e.g., idle / sleep or active / wake-up), disk and / or network input / output (I / O) bandwidth, etc.

[0048] A performance score for a workload (also known as a performance target) can indicate the measurement that will be used to measure the performance and / or expected performance outcome of a computer system. For example, in some cases, a performance score might indicate that the expected performance is to increase or maximize system throughput while maintaining a specified worst-case response time. In other cases, a performance score might be based on other performance measurements, such as, but not limited to, obtaining the best possible response time for a constant workload, the minimum response time to a user request, etc. In some embodiments, the performance score can be set by the user or the system manager.

[0049] Additionally, PPME 102 can receive objectives and / or constraints for a computer system. Objectives / constraints can define a range of specific parameters or conditions in which a workload will be performed. For example, objectives / constraints can define parameters such as, but not limited to, maximum total power usage (e.g., total power of a data center, rack, and / or node), total runtime to complete the workload, maximum and / or minimum number of CPUs and / or cores for the workload, minimum and / or maximum memory bandwidth / latency, minimum and / or maximum network bandwidth / latency, etc.

[0050] PPME 102 includes a scan controller 104 and a power-performance evaluator and monitor 106. The scan controller 104 is configured to scan (e.g., iteratively adjust / change) one or more parameters of the computer system. For example, in some embodiments, the scan controller 104 may be configured to scan one or more of the following based on any received targets / constraints for the workload: CPU frequency, GPU frequency, number of active cores in a multi-core processor, memory bandwidth / latency, device status, etc. That is, the scan controller 104 may scan parameters without adjusting values ​​that would conflict with constraints (such as adjusting the number of active cores below a specified minimum number for the workload, exceeding maximum runtime, etc.). The scan controller 104 may be configured to scan each parameter sequentially (i.e., first fully scan one parameter, then scan another) or scan multiple parameters in parallel (e.g., interleaving adjustments to multiple parameters or scanning two or more parameters simultaneously).

[0051] The power-performance evaluator and monitor 106 is configured to generate workload distribution using the total power consumption of the overall computer system. Specifically, the power-performance evaluator and monitor 106 is configured to collect power usage information and system / device characteristics discussed herein as input to the PPME 102 while the scan controller 104 is scanning one or more parameters. For example, the power-performance evaluator and monitor 106 may collect power breakdowns, scan information (e.g., values ​​of the scanned parameters), memory bandwidth, number of active cores, disk or network usage, etc. The power-performance evaluator and monitor 106 is configured to evaluate the collected information relative to any received targets or constraints (such as response or runtime, throughput constraints, etc.). Furthermore, in some embodiments, the power-performance evaluator and monitor 106 may send commands to the scan controller 104 to adjust one or more parameters based on the evaluation of the collected data.

[0052] Furthermore, based on this assessment, the power-performance evaluator and monitor 106 selects a value for each of one or more parameters within any applicable constraints, which improves or maintains performance within the defined constraints while reducing power consumption. In other words, the power-performance evaluator and monitor 106 attempts to optimize the balance between the computer system's performance and its power consumption. Specifically, a value can be selected that may not result in the highest performance, but offers sufficient power savings compared to a value with the highest performance. Similarly, a selected value may not result in the lowest power consumption, but offers sufficient performance improvement compared to a value with the lowest power consumption. In some embodiments, the value that results in the highest performance per watt of power consumption is selected. The power-performance evaluator and monitor 106 stores the selected values ​​for the corresponding workload in a power-performance distribution or table, which is stored in a power-performance table database 108. In other words, the power-performance evaluator and monitor 106 is able to determine settings that optimally achieve or exceed the desired performance score with minimal power consumption, given any applicable objectives / constraints.

[0053] It should be understood that in some embodiments, PPME 102 is configured to divide a given workload into two or more stages or sub-parts. For example, a given workload may have different computational requirements at the beginning of the workload compared to the middle or end of the workload. Therefore, the workload can be divided into sub-parts or stages. In such cases, PPME 102 is configured to perform scans and monitoring separately for each stage to generate a power-performance table for each stage. Thus, such a workload can have multiple power-performance tables stored in the power-performance table database 108. In other embodiments, multiple tables corresponding to multiple stages can be merged / combined into a single power-performance table for the workload.

[0054] When a workload is to be executed on a computer system, the PPME 102 can determine whether a power-performance table exists in the power-performance table database 108 for that workload. If a power-performance table is available, the PPME 102 can retrieve the corresponding power-performance table from the power-performance table database 108 to serve as a starting point for scanning parameters and evaluating the power-performance relationships of the workload. That is, the PPME 102 can be configured to update the existing power performance table for that workload during subsequent executions. Furthermore, the PPME 102 can be configured to report an anomaly to the power-performance workload scheduler 110 if the monitored workload performance score or power consumption changes by more than a threshold amount compared to a reference or initial value in the power-performance table for a given workload. For example, the processing requirements of a workload may change during its runtime due to changes in data, input, or user behavior / operations during the execution of a given workload. In such cases, the anomaly can trigger another round of scanning and monitoring to update the power-performance table for the given workload to reflect / characterize the changed workload. In some embodiments, the modified workload is considered a new workload, where a new power-performance table is created instead of an existing power-performance table.

[0055] It should be understood that in some embodiments, PPME 102 can be configured to generate a power-performance table for each workload executed on the computer system. In other embodiments, PPME 102 can be configured to generate and / or update the power-performance table for a subset of the total number of workloads executed on the computer system. For example, in some embodiments, the user can specify the types of workloads to be distributed by PPME 102, such that only some, but not all, workloads are distributed.

[0056] When a workload is being executed by a computer system, the power-performance workload scheduler 110 can retrieve the associated power-performance table / distribution for the workload, as well as any updates from the PPME 102, and configure the system to execute the workload using settings in the associated power-performance table (e.g., CPU frequency, GPU frequency, number of active cores, etc.). In this way, the management system 100 is able to consider hardware characteristics, software applications, power usage of individual components (e.g., CPU, GPU, fans, etc.), and overall computer system power usage to determine appropriate settings / parameters for executing the workload that will meet specific performance scores and / or constraints while reducing power usage and thereby lowering the total cost of ownership. Thus, the embodiments described herein implement a full-stack (software / hardware) power-performance management scheme.

[0057] Figure 2 This is a flowchart of one embodiment of a method 200 for managing a computer system. Method 200 can be performed by a management system (such as the management system 100 described above, which includes a PPME and a power-performance workload scheduler). It should be understood that, for illustrative purposes, the order of actions in example method 200 is provided, and in other embodiments, method 200 may be performed in a different order. For example, some actions may occur simultaneously, rather than in a sequential manner as described for ease of explanation. Similarly, it should be understood that some actions may be omitted or additional actions may be included in other embodiments.

[0058] At 202, the workload to be distributed is received. Receiving the workload may include receiving information about the workload to be executed or receiving signals or commands for generating a distribution of a previously executed workload. For example, the user can define settings to indicate which workload to generate a distribution for. In other words, in some embodiments, distributions are generated for all workloads, while in other embodiments, distributions are generated only for a subset of workloads based on user-defined settings. At 204, it is determined whether the workload is new. That is, it is determined whether a distribution has already been generated for the workload (e.g., a power-performance table for the workload is stored in a power-performance table database).

[0059] If the workload is not new, an initial power-performance table is retrieved from the power-performance table database at 206. Settings from this power-performance table are used when running the workload. For example, settings regarding CPU frequency, number of cores, constraints on disk / memory / network usage, etc., are applied when executing the workload. At 208, it is determined whether the initial power-performance table should be updated. For example, in some embodiments, all or part of the power-performance table is set to be updated when the corresponding workload is executed, based on user settings. Additionally, in some embodiments, the workload is monitored while it is being executed at 210, and an update can be triggered, such as by reporting an exception to the power-performance workload scheduler, if a monitored value changes beyond a certain threshold while the workload is being executed. In some embodiments, if the change exceeds the threshold, the workload is considered new, and a new power-performance table is generated for the workload. If the initial power-performance table is not being updated, method 200 continues at 210, where the workload is executed based on the settings in the power-performance table corresponding to the workload.

[0060] If the workload at 204 is new, or if the initial power-performance table will be updated at 208, then method 200 proceeds to 212, where, while executing the workload, the PPME scans at least one parameter of the computer system. In other words, as described above, the PPME iteratively adjusts at least one parameter.

[0061] For example, PPME can start at the lowest CPU frequency and iteratively adjust the CPU frequency by a predetermined amount until it reaches the CPU's maximum CPU frequency. As discussed above, other parameters besides or in lieu of CPU frequency that can be scanned include, but are not limited to, GPU frequency, the number of active cores, memory bandwidth, device activity status, etc. In some embodiments, targets or constraints have been provided for the workload for which the distribution is being generated. Therefore, a scan is performed according to these constraints as described above so as not to violate the targets or constraints (e.g., not exceeding the maximum runtime, satisfying the minimum number of active cores, etc.).

[0062] At 214, while at least one parameter is being scanned, the PPME monitors and evaluates the various characteristics of the system as described above, and correlates the monitored characteristics with the values ​​of the parameter being scanned. As described above, such characteristics may include, but are not limited to, the total power consumed by the system and the portion of that total power consumed by individual components while the parameter is being scanned, ambient temperature, wattage of power supplied to the processor or other components, response time, bandwidth, latency, etc. Based on the monitored characteristics and the analysis / evaluation of power consumption, the PPME selects a corresponding value for each parameter being scanned that increases performance and / or maintains performance within the desired performance score and / or meets any target / constraint, while also reducing power consumed during workload execution. In this way, performance per unit of power is improved, as discussed above, which can lead to a reduced total cost of ownership. At 216, the PPME then generates or updates a power-performance table that includes a corresponding value for each of the one or more parameters being scanned (e.g., CPU frequency, GPU frequency, core count, memory information, disk information, and / or other runtime information). In 218, the power-performance table is stored in the power-performance table database.

[0063] Additionally, as discussed above, workload distribution can be generated for sub-sections or stages of the workload, including scanning parameters at 212, monitoring characteristics at 214, generating a power-performance table at 216, and storing the power-performance table at 218. That is, as discussed above, the workload can be divided into smaller sub-segments for distribution generation. In this way, workload variations can be taken into account to provide more granularity in improving the performance-power ratio.

[0064] Method 200 then continues to 210, where the workload is executed using corresponding selected values ​​for one or more parameters. Furthermore, executing the workload with the corresponding selected values ​​may include scheduling the workload based on a power-performance table used for the workload. Specifically, power-performance tables (also referred to herein as power distributions) for multiple workloads can be compared to identify two or more compatible workloads based on their respective power distributions. For example, the power distribution of a first workload can be compared with the corresponding power distributions of one or more other workloads to identify at least one compatible workload. As used herein, a compatible workload is a workload whose corresponding power distribution indicates settings that allow for simultaneous or non-conflicting execution (e.g., identical or similar settings). For example, two workloads whose corresponding power distributions indicate the same or similar CPU or GPU frequencies are compatible workloads. Identical or similar settings mean that any difference between the settings is within a predefined threshold. The management system can then schedule compatible workloads to execute concurrently on the same computer system or server. For example, in a data center with hundreds or thousands of servers, compatible workloads can be scheduled onto the same servers so that the data center as a whole can benefit from the aggregated improved performance per power usage of multiple workloads executed according to settings in the corresponding power distribution. In this way, the data center as a whole has improved per-power performance and therefore a reduced total cost of ownership.

[0065] Therefore, the embodiments described herein achieve various benefits by implementing a power-performance-based management scheme (such as illustrative method 200) that leverages full-stack (software-hardware) considerations to achieve performance with low power usage. By improving or optimizing the performance-power ratio, the total cost of ownership of the computer system can be reduced. Furthermore, workloads can be scheduled based on a comprehensive consideration of different systems / workloads (e.g., configuration, lifespan, environment, etc.) rather than solely on CPU usage. This provides benefits for the hardware lifecycle by improving the use and scheduling of components (e.g., CPU, fans, etc.). This can also lead to lower infrastructure costs (e.g., due to optimized use of air conditioning, reduced noise, etc.).

[0066] It should be understood that the management system 100 can be implemented in different ways. For example, in some implementations, such as in Figure 3 In the exemplary management system shown, the management system is implemented using software instructions that execute on one or more processors. Figure 3 This is a block diagram of one embodiment of the example management system 300. Figure 3The components of the example management system 300 shown include one or more processors 302, memory 304, storage interface 316, input / output (“I / O”) device interface 312, and network interface 318. All these components are directly or indirectly communicatively coupled for inter-component communication via memory bus 306, I / O bus 308, bus interface unit (“IF”) 309, and I / O bus interface unit 310.

[0067] exist Figure 3 In the illustrated embodiment, the management system 300 further includes one or more general-purpose programmable central processing units (CPUs) 302A and 302B, collectively referred to herein as processors 302. In some embodiments, the management system 300 includes multiple processors. However, in other embodiments, the management system 300 is a single-CPU system. Each processor 302 executes instructions stored in memory 304.

[0068] In some embodiments, memory 304 includes random access semiconductor memory, storage device, or storage medium (volatile or non-volatile) for storing or encoding data and programs. For example, memory 304 stores PPME instruction 340 and PP workload scheduler instruction 342. When executed by a processor such as processor 302, PPME instruction 340 and PP workload scheduler instruction 342 cause processor 302 to perform the above-mentioned... Figure 1 The management system 100 and Figure 2 The functions and calculations discussed in method 200 are as follows. Therefore, PPME instruction 340 and PP workload scheduler instruction 342 enable processor 302 to implement the aforementioned PPME 102 (including scan controller 104 and power-performance evaluator and monitor 106) and power-performance workload scheduler 110.

[0069] In some embodiments, memory 304 represents the overall virtual memory of the management system 300, and may also include virtual memory of other computer systems coupled to the management system 300 via a network. In some embodiments, memory 304 is a single monolithic entity, but in other embodiments, memory 304 includes a hierarchy of caches and other storage devices. For example, memory 304 may reside in multi-level caches, and these caches may be further functionally partitioned such that one cache holds instructions while another cache holds non-instruction data used by the processor. Memory 304 may also be distributed and associated with different CPUs or CPU groups, for example, as known in any of the various so-called Non-Uniform Memory Access (NUMA) computer architectures. Therefore, although for illustrative purposes, Figure 3In the example shown, PPME instruction 340 and PP workload scheduler instruction 342 are stored on the same memory 304; however, it should be understood that other embodiments may be implemented differently. For example, PPME instruction 340 and PP workload scheduler instruction 342 may be distributed across multiple physical media.

[0070] Similarly, in this example, the PP table 346 generated by executing the PPME instruction 340 is stored in memory 304. However, it should be understood that in other embodiments, the PP table 346 is stored differently. For example, in some embodiments, the PP table 346 may be stored on a storage device 328 communicatively attached to the storage interface 316. Thus, the PP table 346 may be stored on a storage device local to the management system or on a remote storage device accessible via a network.

[0071] Figure 3 The management system 300 in the illustrated embodiment also includes a bus interface unit 309 to handle communication between the processor 302, memory 304, display system 324, and I / O bus interface unit 310. The I / O bus interface unit 310 is coupled to an I / O bus 308 for transferring data to and from different I / O units. Specifically, the I / O bus interface unit 310 can communicate with multiple I / O interface units 312, 316, and 318 (also referred to as I / O processors (IOPs) or I / O adapters (IOAs)) via the I / O bus 308. The display system 324 includes a display controller, display memory, or both. The display controller can provide video, still images, audio, or combinations thereof to the display device 326. The display memory can be a dedicated memory for buffering video data.

[0072] The I / O interface unit supports communication with various storage and I / O devices. For example, the I / O device interface unit 312 supports the attachment of one or more user I / O devices 320, which may include user output devices and user input devices (such as keyboards, mice, keypads, touchpads, trackballs, buttons, light pens, or other pointing devices). Users can use the user interface to manipulate the user input devices 320 to provide input data and commands, such as goals and constraints, to the user I / O devices 320. Additionally, users can receive output data via user output devices. For example, a user interface can be presented via the user I / O devices 320, such as being displayed on a display device or played through speakers.

[0073] Storage interface 316 supports the attachment of one or more storage devices 328, such as flash memory. The contents of memory 304, or any portion thereof, can be stored to and retrieved from storage device 328 as needed. Network interface 318 provides one or more communication paths from management system 300 to other digital devices and computer systems.

[0074] although Figure 3 The management system 300 shown illustrates a specific bus architecture providing direct communication paths between the processor 302, memory 304, bus interface 309, display system 324, and I / O bus interface unit 310. However, in alternative embodiments, the management system 300 includes different buses or communication paths that can be arranged in any of a variety of forms, such as point-to-point links in a hierarchical, star, or mesh configuration, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration. Furthermore, although the I / O bus interface unit 310 and I / O bus 308 are shown as a single corresponding unit, in other embodiments, the electronic note 300 may include multiple I / O bus interface units 310 and / or multiple I / O buses 308. While multiple I / O interface units are shown separating the I / O bus 308 from different communication paths extending to different I / O devices, in other embodiments, some or all I / O devices are directly connected to one or more system I / O buses.

[0075] Figure 3 Illustrative components of an example management system 300 are described. However, it should be understood that in other embodiments, these components may be omitted. Figure 3 Some of the components shown may include other components. For example, in some embodiments, display system 324 and display 326 may be omitted. Furthermore, as discussed above, in some embodiments, Figure 3 One or more of the components and data shown include instructions or statements that execute on processor 302, or instructions or statements interpreted by instructions or statements that execute processor 302, to implement the functions described herein. However, in other embodiments, instead of or in addition to processor-based systems that execute software instructions, the system is implemented in hardware via semiconductor devices, chips, logic gates, circuits, circuit cards, and / or other physical hardware devices. Figure 3 One or more components are shown in the diagram.

[0076] For example, such as Figure 4 As shown, the example management system 400 includes an enhanced CPU 402, which is configured to implement the PPME 102 as firmware embedded within the enhanced CPU 402. It should be understood that... Figure 4The components of the enhanced CPU 460 shown are presented by way of example only, and other components (such as the floating-point unit (FPU)) may be included in other embodiments, as will be understood by those skilled in the art. Furthermore, it should be understood that the components of the example management system 400 are presented by way of example only, and other components may be included in other embodiments.

[0077] Figure 4 The example management system 400 depicted includes an enhanced CPU 402 communicatively coupled to main memory 480, storage device 482, and interface 484 via bus 486. Main memory 480 is typically included to represent random access memory (e.g., static random access memory (SRAM), dynamic random access memory (DRAM), or flash memory). Storage device 482 is typically included to represent non-volatile memory, such as hard disk drives, solid-state drives (SSDs), removable memory cards, optical storage, or flash memory devices. In alternative embodiments, storage device 482 may be replaced by a storage area network (SAN) device, the cloud, or other devices connected to management system 400 via a communication network coupled to interface 484.

[0078] exist Figure 4 In the example, the enhanced CPU 402 includes a control unit 460, an arithmetic logic unit (ALU) 462, a bus interface 470, and a register 464. As those skilled in the art will understand, the control unit 460 generates signals that control other components of the CPU 402 to perform actions specified by instructions. For example, the control unit 460 determines when it is time to fetch instructions / data, decode instructions, and execute instructions. The control unit 460 may be implemented as a finite state machine and may include decoders, multiplexers, and other logic components.

[0079] As known to those skilled in the art, the ALU 462 is a device that performs arithmetic and logical operations (such as addition, subtraction, comparison, etc.) on groups of bits. Bus interface 470 connects CPU 402 to other components of the computer, such as main memory 480, storage device 482, and input / output (I / O) device interface 484, via bus 486. For example, bus interface 470 may include circuitry for placing addresses on the address bus, reading and writing data on the data bus, and reading and writing signals on the control bus, as known to those skilled in the art.

[0080] Register 464 provides storage space for data and other information used to perform tasks, as is known to those skilled in the art. As is known to those skilled in the art, register 464 may include general-purpose registers, such as data registers for storing data for arithmetic, logical, and other operations, pointer registers for pointing to addresses or locations in memory, and index registers for indexed addressing. Register 464 may also include special-purpose registers, which have specifically defined functions for operations performed by the processor core, as is known to those skilled in the art. For example, special-purpose registers may include condition code or flag registers used to include different types of condition codes during operations and a program counter used to point to the current or next instruction being executed, as is known to those skilled in the art.

[0081] The enhanced CPU 402 also includes PPME firmware 472 that enables the enhanced CPU 402 to perform the functions of the PPME 102 discussed above. In this example, the function of the power-performance workload scheduler 110 is implemented as PP workload instructions 442 stored in main memory 480 and executable by the CPU 402. However, it should be understood that in other embodiments, the PP workload scheduler instructions 442 can be replaced by firmware embedded in the enhanced CPU 402. Additionally, although the PP table 446 is depicted as being stored in storage device 482, in other embodiments, the PP table 446 may be stored differently, such as in a remote storage location accessed via a network.

[0082] Figure 5 Another exemplary implementation of a management system 500 configured to perform the functions and methods 200 of the management system 100 discussed above is depicted. The example management system 500 includes a CPU 502, which is coupled via a bus 586 to a main memory 580, a storage device 582 (which stores a PP table 546 in this example), an interface 584 (e.g., an I / O device interface and / or a network interface), and a power performance coprocessor 590. The main memory 580, storage device 582, interface 584, and bus 586 are similar to those described above. Figure 4 The main memory 480, storage device 482, interface 484, and bus 486 are discussed.

[0083] In this embodiment, CPU 502 does not include PPME firmware. Instead, the example management system 500 includes a power-performance coprocessor 590. The power-performance coprocessor 590 is a hardware device, such as an accelerator, configured to perform at least a portion of the functions of PPME 102 and power-performance workload scheduler 110 discussed above. However, in other embodiments, the power-performance coprocessor 590 may be configured to implement only the functions of PPME 102 or power-performance workload scheduler 110. A coprocessor is a computer processor used to supplement the functions of the main processor (e.g., CPU 502) by enabling CPU 502 to offload tasks to the coprocessor.

[0084] Therefore, by including a separate coprocessor, example system 500 enables the processing load of PPME 102 and power-performance workload scheduler 110 to be offloaded from CPU 502. The power-performance coprocessor 590 can be implemented using any number of semiconductor devices, chips, logic gates, circuits, etc., known to those skilled in the art. Additionally, in some embodiments, the power-performance coprocessor 590 can be implemented as a field-programmable gate array (FPGA) or application-specific integrated circuit (ASIC). Therefore, through discussion... Figures 3 to 5 The example management systems 300, 400 and 500 in the examples should be understood to mean that the functions and methods 200 of management system 100 may be implemented differently in various embodiments.

[0085] This invention can be a system, method, and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.

[0086] Computer-readable storage media can be tangible devices capable of retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable optical disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or recessed structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0087] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device, or downloaded via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network) to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.

[0088] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and conventional procedural programming languages ​​or similar programming languages ​​such as the "C" programming language. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to perform aspects of this invention, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions to personalize the electronic circuits by utilizing state information from the computer-readable program instructions.

[0089] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0090] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other devices to operate in a particular manner, such that the computer-readable storage medium in which the instructions are stored includes an article of writing comprising instructions for implementing aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0091] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus or other device, perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0092] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a non-consecutive order. For example, depending on the functions involved, two consecutively shown blocks may actually execute substantially simultaneously, or these blocks may sometimes execute in reverse order. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.

[0093] Furthermore, in some embodiments, at least a portion of the functionality of PPME 102 and / or power-performance workload scheduler 110 can be implemented in a cloud computing environment. For example, in some embodiments, management system 100 can be implemented in a cloud computing system, which may include a number of computers (hundreds or thousands of computers) located in one or more data centers and configured to share resources over a network. However, it should be understood that cloud computing systems are not limited to those comprising hundreds or thousands of computers and may include fewer than several hundred computers. Some example cloud computing embodiments are discussed in more detail below. However, it should be understood that although this disclosure includes a detailed description of cloud computing, implementations of the teachings recorded herein are not limited to cloud computing environments. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.

[0094] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with service providers. This cloud model may include at least five features, at least three service models, and at least four deployment models.

[0095] The features are as follows:

[0096] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring manual interaction with the service provider.

[0097] Wide Area Network (WAN) Access: Capabilities are available on the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0098] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Location independence has significance because consumers typically do not control or know the exact location of the resources provided, but can specify the location at a higher level of abstraction (e.g., country, state, or data center).

[0099] Rapid Flexibility: In some cases, the ability to scale outwards and inwards quickly and flexibly can be provided. For consumers, the available capacity often appears unlimited and can be purchased in any quantity at any time.

[0100] Measurement services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both service providers and consumers.

[0101] The service model is as follows:

[0102] Software as a Service (SaaS): The capability offered to consumers is the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from various client devices through thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.

[0103] Platform as a Service (PaaS): This provides consumers with the ability to deploy consumer-created or acquired applications onto cloud infrastructure using programming languages ​​and tools supported by the provider. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environments.

[0104] Infrastructure as a Service (IaaS): This provides consumers with the capability to deliver processing, storage, networking, and other basic computing resources that enable them to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but they do have control over the operating system, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0105] The deployment model is as follows:

[0106] Private cloud: Cloud infrastructure operated solely by an organization. It can be managed by the organization or a third party and can exist inside or outside a building.

[0107] Community cloud: Cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.

[0108] Public cloud: Cloud infrastructure available to the general public or large industrial groups and owned by organizations that sell cloud services.

[0109] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported together (e.g., cloud bursting for load balancing between clouds).

[0110] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure of a network of interconnected nodes.

[0111] Now for reference Figure 6 The diagram illustrates an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10, and local computing devices used by cloud consumers (such as, for example, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer devices 54N) can communicate with the cloud computing nodes 10. The nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide Infrastructure as a Service, Platform as a Service, and / or Software as a Service, without requiring cloud consumers to maintain resources on their local computing devices for these services. It is to be understood that... Figure 6 The types of computing devices 54A-N shown are for illustrative purposes only, and computing node 10 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).

[0112] Now for reference Figure 7 This demonstrates a cloud computing environment of 50 ( Figure 6 This provides a set of functional abstractions. It should be understood beforehand that... Figure 7The components, layers, and functions shown are intended to be illustrative only, and embodiments of the invention are not limited thereto. As described, the following layers and corresponding functions are provided:

[0113] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: a mainframe 61; a RISC (Reduced Instruction Set Computer) based server 62; a server 63; a blade server 64; a storage device 65; and network and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0114] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75.

[0115] In one example, management layer 80 may provide the following functionalities: Resource Provisioning 81 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 82 provides cost tracking when resources are used in the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User Portal 83 provides access to the cloud computing environment for consumers and system administrators. Service Level Management 84 provides cloud resource allocation and management to ensure that required service levels are met. Service Level Agreement (SLA) Planning and Fulfillment 85 provides pre-scheduling and procurement of cloud resources for anticipated future needs according to the SLA.

[0116] Workload layer 90 provides examples of functionalities that can leverage a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom instruction delivery 93; data analytics and processing 94; transaction processing 95; and power performance-based management systems 96.

[0117] Example Implementation

[0118] Example 1 includes a method for managing a computer system. The method includes: receiving a workload of the computer system; scanning at least one parameter of the computer system while executing the workload; and monitoring one or more characteristics of the computer system while scanning the at least one parameter. The one or more characteristics include the total power consumption of the computer system. The method further includes: generating a power distribution of the workload based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, the power distribution indicating corresponding selected values ​​for the at least one parameter; and executing the workload based on the corresponding selected values ​​for the at least one parameter.

[0119] Example 2 includes the method of Example 1, and further includes: receiving one or more constraints on at least one parameter of the computer system.

[0120] Example 3 includes the method of any one of Examples 1-2, and further includes: dividing the workload into two or more phases; wherein scanning at least one parameter includes: scanning at least one parameter for each of the two or more phases; wherein monitoring one or more characteristics includes: monitoring one or more characteristics for each of the two or more phases while scanning at least one parameter; and generating a power distribution includes: generating a corresponding power distribution for each of the two or more phases.

[0121] Example 4 includes the method of any one of Examples 1-3, wherein scanning at least one parameter includes scanning at least one of: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device state.

[0122] Example 5 includes the method of any one of Examples 1-4, wherein the workload is a first workload, and executing the workload based on a corresponding selection value of at least one parameter further includes: comparing the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identifying a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of one or more other workloads; and scheduling the compatible workload to execute concurrently with the first workload.

[0123] Example 6 includes the method of any one of Examples 1-5, wherein one or more characteristics of the monitored computer system include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

[0124] Example 7 includes the method of any one of Examples 1-6, further comprising: receiving an initial power distribution of the workload; and wherein generating the power distribution includes: updating the initial power distribution based on an analysis of the total power consumption of a computer system monitored while scanning at least one parameter.

[0125] Example 8 includes a computer management system. The computer management system includes a storage device and a processor communicatively coupled to the storage device. The processor is configured to: receive a workload of a computer system; iteratively adjust at least one parameter of the computer system while the workload is being executed; and monitor one or more characteristics of the computer system while adjusting the at least one parameter. The one or more characteristics include the total power consumption of the computer system. The processor is further configured to: generate a power distribution of the workload based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, the power distribution indicating corresponding selected values ​​for the at least one parameter; store the power distribution on the storage device; and execute the workload based on the power distribution.

[0126] Example 9 includes the computer management system of Example 8, wherein the processor is further configured to receive one or more constraints on at least one parameter of the computer system.

[0127] Example 10 includes a computer management system as described in any one of Examples 8 to 9, wherein the processor is further configured to: divide the workload into two or more phases; iteratively adjust at least one parameter for each of the two or more phases; monitor one or more characteristics while adjusting at least one parameter for each of the two or more phases; and generate a corresponding power distribution for each of the two or more phases.

[0128] Example 11 includes a computer management system of any one of Examples 8-10, wherein the processor is configured to iteratively adjust at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device state.

[0129] Example 12 includes a computer management system of any one of Examples 8-11, wherein the workload is a first workload, and the processor is further configured to: compare the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identify a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of one or more other workloads; and schedule the compatible workload to execute concurrently with the first workload.

[0130] Example 13 includes a computer management system of any one of Examples 8-12, wherein one or more characteristics of the monitored computer system include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

[0131] Example 14 includes a computer management system as described in any one of Examples 8-13, wherein the processor is further configured to: receive an initial power distribution of the workload; and update the initial power distribution based on an analysis of the total power consumption of the computer system monitored while adjusting at least one parameter.

[0132] Example 15 includes a computer management system. The computer management system includes a power-performance management engine configured to: scan at least one parameter of a computer system while a workload is being executed; monitor one or more characteristics of the computer system while scanning the at least one parameter, the one or more characteristics including the total power consumption of the computer system; and generate a power distribution for the workload based on an analysis of the monitored total power consumption of the computer system, the power distribution indicating corresponding selected values ​​for the at least one parameter. The computer management system also includes a power-performance workload scheduler configured to schedule workloads for execution based on the generated power distribution.

[0133] Example 16 includes the computer management system of Example 15, wherein the workload is a first workload, and a power-performance workload scheduler is further configured to schedule the first workload for execution by: comparing the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identifying a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of one or more other workloads; and scheduling the compatible workload to execute concurrently with the first workload.

[0134] Example 17 includes a method for managing a computer system. The method includes: comparing corresponding power performance tables for each of a plurality of workloads, each power performance table indicating a corresponding value of one or more parameters of the computer system used to perform the corresponding workload; selecting corresponding values ​​for one or more parameters, including the power consumption of the computer system, based on monitoring one or more characteristics of the computer system while iteratively adjusting the one or more parameters. The method also includes: identifying at least two compatible workloads based on the comparison of the corresponding power performance tables; and scheduling the at least two compatible workloads to be executed simultaneously by the computer system.

[0135] Example 18 includes the method of Example 17, wherein one or more parameters include at least one of central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device state.

[0136] Example 19 includes the method of any one of Examples 18-19, wherein one or more of the monitored characteristics include one or more of central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

[0137] Example 20 includes a computer program product comprising a computer-readable storage medium storing a computer-readable program, wherein the computer-readable program, when executed by a processor, causes the processor to: iteratively adjust at least one parameter of a computer system while a workload is being executed; monitor one or more characteristics of the computer system while adjusting the at least one parameter, the one or more characteristics including the total power consumption of the computer system; generate a power distribution of the workload based on an analysis of the monitored total power consumption of the computer system, the power distribution indicating a corresponding selection value for the at least one parameter; and execute the workload based on the generated power distribution.

[0138] Example 21 includes the computer program product of Example 20, wherein one or more of the monitored characteristics include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

[0139] Example 22 includes a computer program product of any one of Examples 20-21, wherein the computer-readable program is further configured to cause the processor to iteratively adjust at least one parameter based on one or more constraints on at least one parameter of the computer system.

[0140] Example 23 includes a computer program product of any one of Examples 20-22, wherein the workload is a first workload, and the computer-readable program is further configured to cause a processor to execute the first workload by: comparing the power distribution of the first workload with the corresponding power distribution of one or more other workloads; identifying a compatible workload based on the comparison of the power distribution of the first workload with the corresponding power distribution of one or more other workloads; and scheduling the compatible workload to execute concurrently with the first workload.

[0141] Example 24 includes a computer program product of any one of Examples 20-23, wherein the computer-readable program is further configured to cause the processor to: divide the workload into two or more phases; iteratively adjust at least one parameter for each of the two or more phases; monitor one or more characteristics while adjusting at least one parameter for each of the two or more phases; and generate a corresponding power distribution for each of the two or more phases.

[0142] Example 25 includes a computer program product of any one of Examples 20-24, wherein the computer-readable program is further configured to cause the processor to iteratively adjust at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device state.

[0143] While specific embodiments have been shown and described herein, those skilled in the art will understand that any arrangement calculated to achieve the same purpose may replace the specific embodiments shown. Therefore, the invention is clearly intended to be limited only by the claims and their equivalents.

Claims

1. A method comprising: Receives the workload of the computer system; Scan at least one parameter of the computer system while executing the workload; While scanning the at least one parameter, monitor one or more characteristics of the computer system, including the total power consumption of the computer system; Based on the analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, a power distribution of the workload is generated, the power distribution indicating the corresponding selection value for the at least one parameter; as well as The workload is executed based on the corresponding selection value of the at least one parameter. Wherein, the workload is a first workload, and executing the workload based on the corresponding selection value of the at least one parameter further includes: The power distribution of the first workload is compared with the corresponding power distribution of one or more other workloads; Based on a comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads, compatible workloads are identified; and The compatible workload is scheduled to execute concurrently with the first workload.

2. The method of claim 1, further comprising: Receive one or more constraints on the at least one parameter of the computer system.

3. The method of claim 1, further comprising: The workload is divided into two or more phases; as well as Wherein, scanning the at least one parameter includes: scanning the at least one parameter for each of the two or more stages; Monitoring the one or more characteristics includes: monitoring the one or more characteristics while scanning the at least one parameter for each of the two or more stages; and The generation of power distribution includes generating a corresponding power distribution for each of the two or more stages.

4. The method according to claim 1, wherein, Scanning the at least one parameter includes scanning at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device status.

5. The method according to claim 1, wherein, The monitored computer system may include one or more of the following characteristics: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

6. The method according to claim 1, further comprising: Receive the initial power distribution of the workload; as well as Generating the power distribution includes updating the initial power distribution based on an analysis of the total power consumption of the computer system monitored while scanning the at least one parameter.

7. A computer management system, comprising: Storage devices; as well as A processor communicatively coupled to the storage device, wherein the processor is configured to: Receives the workload of the computer system; At least one parameter of the computer system is iteratively adjusted while the workload is being executed; While adjusting the at least one parameter, monitor one or more characteristics of the computer system, including the total power consumption of the computer system; Based on the analysis of the total power consumption of the computer system monitored while scanning the at least one parameter, a power distribution of the workload is generated, the power distribution indicating the corresponding selection value for the at least one parameter; The power distribution is stored on the storage device; and Based on the power distribution, the workload is executed. Wherein, the workload is a first workload, and the processor is further configured to: The power distribution of the first workload is compared with the corresponding power distribution of one or more other workloads; Based on a comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads, compatible workloads are identified; and The compatible workload is scheduled to execute concurrently with the first workload.

8. The computer management system according to claim 7, wherein, The processor is also configured to receive one or more constraints on the at least one parameter of the computer system.

9. The computer management system according to claim 7, wherein, The processor is also configured to: The workload is divided into two or more phases; For each of the two or more stages, the at least one parameter is iteratively adjusted; For each of the two or more phases, monitor the one or more characteristics while adjusting the at least one parameter; as well as For each of the two or more stages, a corresponding power distribution is generated.

10. The computer management system according to claim 7, wherein, The processor is configured to iteratively adjust at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device state.

11. The computer management system according to claim 7, wherein, The monitored computer system may include one or more of the following characteristics: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

12. The computer management system according to claim 7, wherein, The processor is also configured to: Receive the initial power distribution of the workload; and The initial power distribution is updated based on the analysis of the total power consumption of the computer system monitored while adjusting the at least one parameter.

13. A computer management system, comprising: The power-performance management engine is configured as follows: Scan at least one parameter of the computer system while the workload is being executed; While scanning the at least one parameter, monitor one or more characteristics of the computer system, including the total power consumption of the computer system; as well as Based on the analysis of the total power consumption of the monitored computer system, a power distribution of the workload is generated, the power distribution indicating the corresponding selection value for the at least one parameter; as well as A power-performance workload scheduler, configured to schedule the workloads for execution based on the generated power distribution. Wherein, the workload is a first workload, and the power-performance workload scheduler is further configured to schedule the first workload for execution by: The power distribution of the first workload is compared with the corresponding power distribution of one or more other workloads; Based on a comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads, compatible workloads are identified; and The compatible workload is scheduled to execute concurrently with the first workload.

14. A method comprising: The power performance table for each of a plurality of workloads is compared, each power performance table indicating a corresponding value of one or more parameters of a computer system for performing the corresponding workload, and wherein the corresponding value of the one or more parameters is selected based on monitoring one or more characteristics of the computer system while iteratively adjusting the one or more parameters, the one or more characteristics including the power consumption of the computer system. Based on a comparison of the corresponding power performance tables, at least two compatible workloads are identified; and The at least two compatible workloads are scheduled to be executed simultaneously by the computer system.

15. The method according to claim 14, wherein, The one or more parameters include at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device status.

16. The method of claim 14, wherein, One or more of the monitored characteristics include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

17. A computer program product comprising a computer-readable storage medium in which a computer-readable program is stored, wherein, The computer-readable program, when executed by a processor, causes the processor to: Iteratively adjust at least one parameter of the computer system while the workload is being executed; While adjusting the at least one parameter, monitor one or more characteristics of the computer system, including the total power consumption of the computer system; Based on an analysis of the total power consumption of the monitored computer system, a power distribution for the workload is generated, the power distribution indicating corresponding selection values ​​for the at least one parameter; and Based on the generated power distribution, the workload is executed. Wherein, the workload is a first workload, and the computer-readable program is further configured to cause the processor to execute the first workload by: The power distribution of the first workload is compared with the corresponding power distribution of one or more other workloads; Based on a comparison of the power distribution of the first workload with the corresponding power distribution of the one or more other workloads, compatible workloads are identified; and The compatible workload is scheduled to execute concurrently with the first workload.

18. The computer program product according to claim 17, wherein, One or more of the monitored characteristics include one or more of the following: central processing unit (CPU) power usage, graphics processing unit (GPU) power usage, fan power usage, memory power usage, disk power usage, memory bandwidth, memory latency, disk I / O bandwidth, and network bandwidth.

19. The computer program product according to claim 17, wherein, The computer-readable program is further configured to cause the processor to iteratively adjust the at least one parameter based on one or more constraints on the at least one parameter of the computer system.

20. The computer program product according to claim 17, wherein, The computer-readable program is also configured to cause the processor to: The workload is divided into two or more phases; For each of the two or more stages, the at least one parameter is iteratively adjusted; For each of the two or more phases, monitor the one or more characteristics while adjusting the at least one parameter; as well as For each of the two or more stages, a corresponding power distribution is generated.

21. The computer program product according to claim 17, wherein, The computer-readable program is also configured to cause the processor to iteratively adjust at least one of the following: central processing unit (CPU) frequency, graphics processing unit (GPU) frequency, number of active cores in a multi-core processor, memory bandwidth, network bandwidth, and device state.