Power-Performance Based System Management

By dynamically adjusting parameters such as CPU frequency and monitoring power consumption, the method optimizes power usage and performance in computer systems, addressing the challenge of balancing performance with total cost of ownership in data centers.

JP7664949B2Active Publication Date: 2025-04-18INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022570218
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-18
Filing Date
2021-06-16
Publication Date
2025-04-18
Estimated Expiration
2041-06-16

AI Technical Summary

Technical Problem

Modern computer systems face challenges in balancing performance with total cost of ownership (TCO), particularly in large data centers, where electricity consumption varies based on workload and configuration.

Method used

A method and system for managing computer power-performance by receiving a workload, sweeping parameters such as CPU frequency or memory bandwidth, monitoring power consumption, generating a power profile, and adjusting parameters based on analysis to optimize power usage while maintaining performance.

Benefits of technology

This approach enables more efficient management of computer systems, improving performance per power usage and reducing total cost of ownership by dynamically adjusting system parameters based on workload and power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007664949000001
    Figure 0007664949000001
  • Figure 0007664949000002
    Figure 0007664949000002
  • Figure 0007664949000003
    Figure 0007664949000003
Patent Text Reader

Abstract

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

Description

[Technical field]

[0001] The present invention relates generally to computer systems, and more particularly to power-performance based system management for computers. [Background technology]

[0002] Many modern computer systems, especially in large data centers (e.g., hyper-scale data centers), focus on balancing increased performance with total cost of ownership (TCO). TCO includes total acquisition cost (TCA), maintenance cost, and electricity charges due to power consumption. TCA and maintenance cost are typically fixed investments, while electricity charges due to power consumption vary based on the workload and configuration of the computer system. Summary of the Invention

[0003] Aspects of the disclosure may include methods, computer program products, and systems. One example of a method includes receiving a workload for a computer system, sweeping at least one parameter of the computer system while executing the workload, monitoring one or more characteristics of the computer system while sweeping the at least one parameter, the one or more characteristics including a total power consumption of the computer system, generating a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter, and executing the workload based on the respective selected value of the at least one parameter.

[0004] In view of one aspect, the invention provides a method comprising: receiving a workload for a computer system; sweeping at least one parameter of the computer system while executing the workload; monitoring one or more characteristics of the computer system while sweeping the at least one parameter, the one or more characteristics including a total power consumption of the computer system; generating a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter; and executing the workload based on the respective selected value of the at least one parameter.

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

[0006] Preferably, the present invention provides a method further comprising dividing a workload into two or more stages, wherein sweeping at least one parameter comprises sweeping at least one parameter for each of the two or more stages, monitoring one or more characteristics comprises monitoring the one or more characteristics while sweeping the at least one parameter for each of the two or more stages, and generating a power profile comprises generating a respective power profile for each of the two or more stages.

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

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

[0009] Preferably, the present invention provides a method, wherein the monitored one or more characteristics of the computer system 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 input / output bandwidth, and network bandwidth.

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

[0011] In view of another aspect, the present invention provides a computer management system comprising a storage device and a processor communicatively coupled to the storage device, the processor being configured to receive a workload for the computer system, iteratively adjust at least one parameter of the computer system while the workload is being executed, monitor one or more characteristics of the computer system including a total power consumption of the computer system while adjusting the at least one parameter, generate a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter, store the power profile on the storage device, and execute the workload based on the power profile.

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

[0013] 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 at least one parameter for each of the two or more stages, monitor one or more characteristics while adjusting the at least one parameter for each of the two or more stages, and generate a respective power profile for each of the two or more stages.

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

[0015] Preferably, the invention provides a computer management system, wherein the workload is a first workload, and the processor is further configured to compare a power profile of the first workload to a respective power profile of one or more other workloads, identify compatible workloads based on the comparison of the power profile of the first workload to the respective power profile of the one or more other workloads, and schedule the compatible workloads to run concurrently with the first workload.

[0016] Preferably, the present invention provides a computer management system wherein the monitored one or more characteristics of the computer system 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 input / output bandwidth, and network bandwidth.

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

[0018] From another aspect, the present invention provides a computer management system comprising: a power-performance management engine configured to: sweep at least one parameter of the computer system while a workload is being executed; monitor one or more characteristics of the computer system including a total power consumption of the computer system while sweeping the at least one parameter; and generate a power profile for the workload based on an analysis of the monitored total power consumption of the computer system, the power profile indicating a respective selected value for the at least one parameter; and a power-performance workload scheduler configured to schedule the workload for execution based on the generated power profile.

[0019] Preferably, the 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 a power profile of the first workload to a respective power profile of one or more other workloads, identifying compatible workloads based on the comparison of the power profile of the first workload to the respective power profiles of the one or more other workloads, and scheduling the compatible workloads to execute concurrently with the first workload.

[0020] In view of another aspect, the invention provides a method, the method including: comparing a respective power-performance table for each of a plurality of workloads, each power-performance table indicating a respective value of one or more parameters of a computer system for executing a respective workload, the respective values ​​of the one or more parameters being selected based on monitoring one or more characteristics of the computer system including a power consumption of the computer system while iteratively adjusting the one or more parameters; identifying at least two compatible workloads based on the comparison of the respective power-performance tables; and scheduling the at least two compatible workloads for simultaneous execution by the computer system.

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

[0022] Preferably, the present invention provides a method, wherein the one or more 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 input / output bandwidth, and network bandwidth.

[0023] From another aspect, the invention provides a computer program product comprising a computer readable storage medium having stored thereon a computer readable program that, 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 including a total power consumption of the computer system while adjusting the at least one parameter, generate a power profile for the workload based on an analysis of the monitored total power consumption of the computer system, the power profile indicating a respective selected value for the at least one parameter, and execute the workload based on the generated power profile.

[0024] Preferably, the present invention provides a computer program product, wherein the one or more 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 input / output bandwidth, and network bandwidth.

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

[0026] Preferably, the 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 a power profile of the first workload to a respective power profile of one or more other workloads, identifying a compatible workload based on the comparison of the power profile of the first workload to the respective power profile of the one or more other workloads, and scheduling the compatible workload to execute concurrently with the first workload.

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

[0028] 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 a central processing unit (CPU) frequency, a graphics processing unit (GPU) frequency, a number of active cores in a multi-core processor, a memory bandwidth, a network bandwidth, and a device state.

[0029] Example embodiments will be described with additional specificity and detail through the use of the accompanying drawings, with the understanding that the drawings depict only exemplary embodiments of the invention and are therefore not to be considered limiting of scope. [Brief description of the drawings]

[0030] [Figure 1] FIG. 1 is a block diagram of one embodiment of a computer management system. [Diagram 2] 1 is a flow diagram of one embodiment of a method for managing a computer system. [Diagram 3] FIG. 2 is a block diagram of another embodiment of a computer management system. [Figure 4] FIG. 2 is a block diagram of another embodiment of a computer management system. [Diagram 5] FIG. 2 is a block diagram of another embodiment of a computer management system. [Figure 6] FIG. 1 illustrates one embodiment of a cloud computing environment. [Figure 7] FIG. 2 illustrates one embodiment of an abstract model layer. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0031] In accordance with common practice, the various described features are not drawn to scale, but are drawn to emphasize particular features relevant to the illustrative embodiments.

[0032] In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which specific exemplary embodiments are shown by way of illustration. It is to be understood, however, that other embodiments may be utilized and that logical, mechanical and electrical changes may be made. Furthermore, the drawings and the methods presented herein should not be construed as limiting the order in which individual steps may be performed. Thus, the following detailed description is not to be construed in a limiting sense.

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

[0034] Some modern central processing units (CPUs) can adjust the frequency with different workloads to utilize the CPU's power budget. For example, if the workload is very heavy, the frequency may not reach a high number. However, if the workload is light (e.g., one active call and a small portion of logic is being used in the CPU), the CPU frequency can be adjusted to a relatively high frequency. Although such techniques can improve power savings in some situations, they may also suffer from various limitations. For example, if a given workload has performance bottlenecks in non-CPU devices such as disks, network, memory, graphics processing units (GPUs), etc., the computer system will reach higher performance even with a higher CPU frequency and corresponding higher CPU power usage. In addition, if the workload has conflicts in computational resources inside the CPU between multiple processes or threads of the CPU, the CPU will consume more power with less performance improvement even if the CPU frequency is increased. Furthermore, as frequency increases and corresponding temperature rises, CPU thermal requirements often trigger increased demands on CPU cooling devices (e.g., CPU fans), which can lead to increased power consumption of the cooling devices and a resulting decrease in power-to-performance rate.

[0035] The embodiments described herein help address the limitations discussed and others. In particular, the embodiments described in more detail below enable a more comprehensive, dynamic, self-learning, power-performance based method of managing computer systems that takes into account multiple factors such as workload variation, workload scheduling, total system power consumption, environmental changes, CPU frequency and voltage, etc., to provide a more efficient management scheme that can improve performance per power usage and / or performance per TCO.

[0036] As used herein, the phrases "at least one," "one or more," and "and / or" are open-ended expressions that are both conjunctions and disjunctions 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, or C, or combinations thereof" means A alone, B alone, C alone, a combination of A and B, a combination of A and C, a combination of B and C, or a combination of A, B, and C. In other words, "at least one," "one or more," and "and / or" mean that any combination of items and number of items from the list can be used, but not all items in the list are required. The items can be specific objects, objects, or categories. For example, in some illustrative examples, "at least one of" may be, for example, without limitation, two of item A, one of item B, and ten of item C, as well as four of item B and seven of item C, or other suitable combinations.

[0037] Additionally, the term "a" or "b" refers to one or more of that entity. As such, the terms "a," "one or more," and "at least one" can be used interchangeably herein. It should also be noted that the terms "comprising," "including," and "having" can be used interchangeably.

[0038] Additionally, the term "automatic" and variations thereof, as used herein, refers to any process or operation that is performed without specific human input when the process or operation is performed. However, a process or operation may be automatic even if the performance of the process or operation uses specific or non-specific human input if the input is received prior to the performance of the process or operation. Human input is considered to be specific if such input affects the manner in which the process or operation is performed. Human input consenting to the performance of a process or operation is not considered to be "specific."

[0039] Additionally, as used herein, the term "workload" refers to the amount of work a computer system must do in a fixed period of time. For example, workload refers to the amount of load in the form of client requests, processing and communication resources, etc., expected in a particular period of time. Thus, workload includes factors such as the type and rate of requests sent to the computer system, the software packages and application programs being executed, the amount of programs / applications running on the computer system, the number of users connecting to the computer system's applications, and the amount of time and processing power these interactions consume. Workload can also include work that a computer system is doing in the background. For example, if a computer system includes a file system that is frequently accessed by other systems, handling these accesses can be a large portion of the overall workload, even if the computer system is not formally a server.

[0040] 1 is a schematic block diagram of one embodiment of a power-performance management system 100 configured to manage a computer system based on a power-performance rate. In other words, the power-performance management system 100 is configured to improve the power-to-performance ratio of the computer system to reduce the total cost of ownership of the computer system. The power-performance management system 100 can be part of an overall computer system that is being managed by the power-performance management system 100. Furthermore, the computer system being managed, such as a data center having hundreds or thousands of servers, can include a single device or multiple devices.

[0041] 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 that are executed or being executed by the computer system. The respective power-performance table for each workload indicates a selected value of at least one parameter of the computer system or device selected to improve the power-to-performance ratio of the computer system or device (e.g., the power efficiency of the computer system), thereby reducing the total cost of ownership. The PPME 102 receives various inputs that are used to determine and generate the power-performance tables for the workloads. For example, the 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 that have been previously profiled by the PPME 102. However, initial power-performance tables may not be available for all workloads, such as new workloads or workloads that have not been previously profiled.

[0042] The power usage information may include information regarding the total power consumption / usage of the computer system and may include a breakdown of power usage to individual components of the computer system. For example, the 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. The device and / or system characteristics may include, but are not limited to, memory bandwidth, memory latency, device and disk states (e.g., idle / sleep or active / wake) and / or network input / output (I / O) bandwidth, etc.

[0043] A workload's performance score (also referred to as a performance objective) may indicate a metric used to measure the performance of a computer system and / or a desired performance outcome. For example, in some situations, the performance score may indicate that the desired performance is to increase or maximize system throughput while maintaining a specified worst-case response time. In other situations, the performance score may be based on other performance metrics, such as, but not limited to, obtaining the best possible response time for a given workload, the minimum response time to a user request, etc. In some embodiments, the performance score determination may be set by a user or a system manager.

[0044] Additionally, the PPME 102 may receive targets and / or constraints for the computer system. The targets / constraints may define certain parameters or condition ranges within which the workload will be executed. For example, the targets / constraints may define parameters such as, but not limited to, maximum total power usage (e.g., total power for a data center, rack, or node, or a combination thereof), total execution time 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.

[0045] The PPME 102 includes a sweeping controller 104 and a power-performance evaluator and monitor 106. The sweeping controller 104 is configured to sweep (e.g., iteratively adjust / change) one or more parameters of the computer system. For example, in some embodiments, the sweeping controller 104 can be configured to sweep one or more of the CPU frequency, GPU frequency, number of active cores in a multi-core processor, memory bandwidth / latency, device state, etc. according to any received targets / constraints of the workload. That is, the sweeping controller 104 can sweep the parameters without adjusting values ​​that conflict with constraints, such as adjusting the number of active cores to less than a specified minimum number of active cores of the workload, exceeding a maximum execution time, etc. The sweeping controller 104 can be configured to sweep each parameter in sequence (i.e., completely sweeping one parameter before sweeping another parameter) or to sweep multiple parameters in parallel (e.g., alternating adjustments to multiple parameters or sweeping two or more parameters simultaneously).

[0046] The power-performance evaluator and monitor 106 is configured to profile the workload with the total power consumption of the entire computer system. In particular, 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 sweep controller 104 sweeps one or more parameters. For example, the power-performance evaluator and monitor 106 can collect power consumption breakdown, sweep information (e.g., values ​​of parameters being swept), 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 with respect to any received targets or constraints, such as response or execution time, throughput constraints, etc. Additionally, the power-performance evaluator and monitor 106 can, in some embodiments, send commands to the sweep controller 104 to adjust one or more parameters based on an evaluation of the collected data.

[0047] Further, based on the evaluation, the power-performance evaluator and monitor 106 selects, for each of the one or more parameters, values ​​that, within any applicable constraints, increase performance or maintain performance within defined constraints while reducing power usage. That is, the power-performance evaluator and monitor 106 attempts to optimize the balance between the performance of the computer system and the power usage of the computer system. That is, a value may be selected that may not result in the best performance, but has a sufficient power usage savings compared to the value that has the best performance. Similarly, the selected value may not result in the least power usage, but has a sufficient performance improvement over the value that has the least power usage. In some embodiments, a value that results in the best performance per watt of power usage is selected. The power-performance evaluator and monitor 106 stores the selected values ​​in a power-performance profile or table for the respective workload that is stored in the power-performance table database 108. In other words, the power-performance evaluator and monitor 106 may determine settings that achieve or exceed a desired performance score with a minimum power usage, given any applicable targets / constraints.

[0048] It should be appreciated that in some embodiments, the PPME 102 is configured to divide a given workload into two or more stages or subparts. For example, a given workload may have different computational requirements at the beginning of the workload than in the middle or at the end of the workload. Thus, the workload may be divided into subparts or stages. In such a situation, the PPME 102 is configured to perform a sweep and monitor each stage separately to develop a per-stage power-performance table. Thus, such a workload may have multiple power-performance tables stored in the power-performance table database 108. In other embodiments, multiple tables corresponding to multiple stages may be merged / combined into a single power-performance table for the workload.

[0049] When a workload is executed on the computer system, the PPME 102 may determine whether a power-performance table exists for the workload in the power-performance table database 108. If one is available, the PPME 102 may retrieve the respective power-performance table from the power-performance table database 108 to use as a starting point for sweeping parameters and evaluating the power vs. performance relationship of the workload. That is, the PPME 102 may be configured to update the existing power-performance table for the workload during subsequent execution of the workload. Additionally, the PPME 102 may be configured to report an exception 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 baseline or initial value in the power-performance table for the given workload. For example, the processing demands of a given workload may change during the execution time of the workload due to changes in data, inputs, user behavior / actions, etc. during the execution of the workload. In such a scenario, the exception may trigger another round of sweeping and monitoring, and the power-performance table for the given workload may be updated to reflect / characterize the changed workload. In some embodiments, the changed workload is considered a new workload for which a new power-performance table is created, rather than updating the existing power-performance table.

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

[0051] When a workload is being executed by the computer system, the power-performance workload scheduler 110 can retrieve the associated power-performance table / profile for the workload, and any updates from the PPME 102, and configure the system to execute the workload using the settings in the associated power-performance table (e.g., CPU frequency, GPU frequency, number of active cores, etc.). In this manner, the management system 100 can take into account the hardware characteristics of the individual components (e.g., CPU, GPU, fans, etc.), the software applications, power usage, and the total computer system power usage to determine the appropriate configuration / parameters to execute a workload that meets a particular performance score and / or constraints while reducing power usage, thereby also reducing the total cost of ownership. Thus, the embodiments described herein enable a full stack (software / hardware) power-performance based management scheme.

[0052] 2 is a flow diagram of one embodiment of a method 200 for managing a computer system. Method 200 may be performed by a management system, such as management system 100 described above, including a PPME and a power-performance workload scheduler. It will be understood that the order of actions in exemplary method 200 is provided for purposes of explanation, and that method 200 may be performed in a different order in other embodiments. For example, some actions may occur simultaneously rather than in a sequential manner as described for ease of explanation. Similarly, it will be understood that some actions may be omitted or additional actions may be included in other embodiments.

[0053] At 202, a workload to be profiled is received. Receiving a workload may include receiving information about a workload to be executed or receiving a signal or command to profile a workload that is already executing. For example, a user may define settings that indicate which workloads to profile. In other words, in some embodiments, all workloads are profiled, while in other embodiments, only a subset of the workloads are profiled based on user-defined settings. At 204, it is determined whether the workload is a new workload. That is, it is determined whether the workload has been previously profiled (e.g., a power-performance table for the workload is stored in a power-performance table database).

[0054] If the workload is not a new workload, an initial power-performance table is retrieved from the power-performance table database at 206. The settings from the power-performance table are used when executing the workload. For example, settings related to 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 is updated. For example, in some embodiments, based on user settings, all or a portion of the power-performance table is configured to be updated when the corresponding workload is executed. Further, in some embodiments, the workload is monitored while it is executed at 210, and if the monitored value changes during execution of the workload beyond a certain threshold, an update can be triggered, such as by an exception being reported to the power-performance workload scheduler. In some embodiments, if the change exceeds the threshold, the workload is treated as a new workload and a new power-performance table is generated for the workload. If the initial power-performance table has not been updated, method 200 continues at 210, where the workload is executed based on the settings in the power-performance table corresponding to the workload.

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

[0056] For example, PPME may start with a minimum CPU frequency and iteratively adjust the CPU frequency by a predetermined amount until it reaches the maximum CPU frequency for the CPU. As discussed above, other parameters that may be swept in addition to or instead of the CPU frequency include, but are not limited to, GPU frequency, number of active cores, memory bandwidth, device active state, etc. In some embodiments, targets or constraints were provided for the workload being profiled. Thus, as discussed above, the sweep is performed according to these constraints such that the targets or constraints are not violated (e.g., maximum execution time is not exceeded, minimum number of active cores is met, etc.).

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

[0058] Additionally, as discussed above, profiling of the workload, including sweeping parameters at 212, monitoring characteristics at 214, generating power-performance tables at 216, and storing the power-performance tables at 218, may be performed on subparts or stages of the workload. That is, as discussed above, the workload may be divided into smaller subsections for profiling. In this manner, variations in the workload may be taken into account to provide further granularity in improving the performance-to-power ratio.

[0059] Method 200 then continues at 210 where the workloads are executed with the respective selected values ​​of the one or more parameters. Furthermore, executing the workloads with the respective selected values ​​can include scheduling the workloads based on a power-performance table for the workloads. In particular, the power-performance tables (also referred to herein as power profiles) of the multiple workloads can be compared to identify two or more compatible workloads based on the respective power profiles. For example, the power profile of a first workload can be compared to the respective power profiles of one or more other workloads to identify at least one compatible workload. As used herein, a compatible workload is a workload whose respective power profiles indicate settings (e.g., the same or similar settings) that can be executed simultaneously or do not conflict. For example, two workloads whose respective power profiles indicate, for example, the same or similar CPU or GPU frequencies are compatible workloads. The same or similar settings means that any difference between the settings is within a predetermined threshold. The management system can then schedule the compatible workloads to run simultaneously on the same computer system or server. For example, in a data center with hundreds or thousands of servers, compatible workloads can be scheduled on the same server such that the data center as a whole can benefit from improved aggregate performance per power usage of multiple workloads running according to their respective power profile settings, thus improving the data center's overall performance per power and resulting in a lower total cost of ownership.

[0060] Thus, the embodiments described herein enable various advantages through the implementation of a power-performance based management scheme, such as the exemplary method 200, that utilizes a full stack (software-hardware) consideration to obtain performance at lower power usage. By improving or optimizing the performance to power ratio, the total cost of ownership of the computer system can be reduced. Furthermore, workloads can be scheduled based on a full consideration of different systems / workloads (e.g., configuration, lifespan, environment, etc.) rather than simply based on CPU usage. This provides benefits to the hardware life cycle by improving the usage and scheduling of components (e.g., CPU, fans, etc.). This can also result in lower infrastructure costs (e.g., due to optimized use of air conditioning, reduced noise, etc.).

[0061] It should be appreciated that management system 100 can be implemented in a variety of ways. For example, in some embodiments, the management system is implemented using software instructions executed on one or more processors, such as in the exemplary management system illustrated in FIG. 3. FIG. 3 is a block diagram of one embodiment of an exemplary management system 300. Components of the exemplary management system 300 illustrated in FIG. 3 include one or more processors 302, memory 304, a storage interface 316, an input / output ("I / O") device interface 312, and a network interface 318, all of which are communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 306, an I / O bus 308, a bus interface unit ("IF") 309, and an I / O bus interface unit 310.

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

[0063] In some embodiments, the memory 304 includes a random access semiconductor memory, storage device or storage medium (volatile or non-volatile) for storing or encoding data and programs. For example, the memory 304 stores PPME instructions 340 and PP workload scheduler instructions 342. When executed by a processor, such as the processor 302, the PPME instructions 340 and PP workload scheduler instructions 342 cause the processor 302 to perform the functions and calculations discussed above with respect to the management system 100 of FIG. 1 and the method 200 of FIG. 2. Thus, the PPME instructions 340 and PP workload scheduler instructions 342 cause the processor 302 to implement the PPME 102 (including the sweep controller 104 and the power-performance evaluator and monitor 106) and the power-performance workload scheduler 110 described above.

[0064] In some embodiments, memory 304 represents the entire virtual memory of management system 300 and may also include virtual memory of other computer systems coupled to management system 300 via a network. In some embodiments, memory 304 is a single monolithic entity, while in other embodiments, memory 304 includes a hierarchy of caches and other memory devices. For example, memory 304 may exist in multiple levels of caches, and these caches may be further divided by function, such that one cache holds instructions while another holds non-instruction data used by the processor. For example, memory 304 may be further distributed and associated with different CPUs or sets of CPUs, as is known in any of a variety of so-called non-uniform memory access (NUMA) computer architectures. Thus, for purposes of illustration, PPME instructions 340 and PP workload scheduler instructions 342 are stored in the same memory 304 in the example shown in FIG. 3, but it should be understood that other embodiments may be implemented differently. For example, PPME instructions 340 and PP workload scheduler instructions 342 may be distributed across multiple physical media.

[0065] Similarly, in this example, the PP table 346 generated through execution of the PPME instructions 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 that is 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 may be located remotely and accessed over a network.

[0066] The management system 300 in the embodiment shown in FIG. 3 also includes a bus interface unit 309 that handles communication between the processor 302, the memory 304, the display system 324, and an 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 various I / O units. In particular, the I / O bus interface unit 310 can communicate with a number of I / O interface units 312, 316, and 318, also known as I / O processors (IOPs) or I / O adapters (IOAs), through the I / O bus 308. The display system 324 includes a display controller, a display memory, or both. The display controller can provide video, still images, audio, or a combination thereof to the display device 326. The display memory can be a dedicated memory for buffering video data.

[0067] The I / O interface unit supports communication with a wide variety of storage and I / O devices. For example, the I / O device interface unit 312 supports attachment of one or more user I / O devices 320, which may include user output devices and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen or other pointing devices). A user can manipulate the user input devices 320 with a user interface to provide input data and commands, such as targets and constraints, to the user I / O devices 320. Additionally, a user can receive output data via the user output devices. For example, the user interface can be presented via the user I / O devices 320, such as displayed on a display device or played through speakers.

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

[0069] Although the management system 300 shown in FIG. 3 depicts a particular bus structure providing direct communication paths between the processor 302, memory 304, bus interface 309, display system 324, and I / O bus interface unit 310, in alternative embodiments, management system 300 includes various buses or communication paths that may be arranged in any of a variety of configurations, such as point-to-point links in a hierarchical, star, or web configuration, multiple tiered buses, parallel and redundant paths, or any other suitable type of configuration. Additionally, while I / O bus interface unit 310 and I / O bus 308 are depicted as single respective units, in other embodiments, electronic physical note 300 may include multiple I / O bus interface units 310 and / or multiple I / O buses 308. Although various multiple I / O interface units are depicted separating I / O bus 308 from various paths to various I / O devices, in other embodiments, some or all of the I / O devices are directly connected to one or more system I / O buses.

[0070] FIG. 3 illustrates illustrative components of an exemplary management system 300. However, it is understood that in other embodiments, some of the components illustrated in FIG. 3 may be omitted, or other components may be included, or both. For example, in some embodiments, the display system 324 and the display 326 may be omitted. Furthermore, as discussed above, in some embodiments, one or more of the components and data illustrated in FIG. 3 include instructions or statements executed on the processor 302, or instructions or statements interpreted by instructions or statements that execute the processor 302 to perform the functions described herein. However, in other embodiments, one or more of the components illustrated in FIG. 3 are implemented in hardware via semiconductor devices, chips, logic gates, circuits, circuit cards, or other physical hardware devices, or combinations thereof, instead of, or in addition to, a processor-based system that executes software instructions.

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

[0072] The exemplary management system 400 shown in FIG. 4 comprises an enhanced CPU 402 communicatively coupled to a main memory 480, a storage device 482, and an interface 484 via a bus 486. The main memory 480 is included to generally represent random access memory (e.g., static random access memory (SRAM), dynamic random access memory (DRAM), or Flash). The storage device 482 is included to generally represent non-volatile memory, such as a hard disk drive, a solid state device (SSD), a removable memory card, optical storage, or a flash memory device. In an alternative embodiment, the storage device 482 can be replaced with a storage area network (SAN) device, cloud, or other device connected to the management system 400 via a communication network coupled to the interface 484.

[0073] 4, the enhanced CPU 402 includes a control unit 460, an arithmetic logic unit (ALU) 462, a bus interface 470, and registers 464. As will be appreciated by those skilled in the art, 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 fetches instructions / data, decodes instructions, and determines when to execute instructions. The control unit 460 may be implemented as a finite state machine and may include decoders, multiplexers, and other logic components.

[0074] As known to those skilled in the art, ALU 462 is a device that performs arithmetic and logical operations on groups of bits, such as addition, subtraction, comparison, etc. 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, as known to those skilled in the art, bus interface 470 may include circuitry for placing addresses on an address bus, reading and writing data on a data bus, and reading and writing signals on a control bus.

[0075] As known to those skilled in the art, the registers 464 provide storage space for data and other information for the execution of tasks. As known to those skilled in the art, the registers 464 may include general purpose registers such as data registers used to store data for arithmetic, logical and other operations, pointer registers used to point to addresses or locations in memory, index registers used for indexed addressing, etc. As known to those skilled in the art, the registers 464 may also include special purpose registers having specific defined functions for the operation of the processor core. For example, as known to those skilled in the art, the special purpose registers may include status code or flags registers used to contain various types of status codes during operation, and a program counter used to point to the current instruction being executed or the next instruction.

[0076] 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 functions of the power-performance workload scheduler 110 are implemented as PP workload instructions 442 stored in main memory 480 that can be executed by the CPU 402. However, it will be understood that in other embodiments, the PP workload scheduler instructions 442 can be replaced with firmware embedded in the enhanced CPU 402. Additionally, while the PP table 446 is shown as being stored in the storage device 482, the PP table 446 may be stored differently in other embodiments, such as in a remote storage location accessed over a network.

[0077] 5 illustrates another exemplary implementation of a management system 500 configured to perform the functions of management system 100 and method 200 discussed above. The exemplary management system 500 includes a CPU 502 coupled to a main memory 580, a storage device 582 (which in this example stores a PP table 546), an interface 584 (e.g., an I / O device interface or a network interface or a combination thereof), and a power-performance coprocessor 590 via a bus 586. The main memory 580, the storage device 582, the interface 584, and the bus 586 are similar to the main memory 480, the storage device 482, the interface 484, and the bus 486 discussed above with respect to FIG.

[0078] In this embodiment, the CPU 502 does not include PPME firmware. Rather, the exemplary 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 the PPME 102 and the power-performance workload scheduler 110 discussed above. However, in other embodiments, the power-performance coprocessor 590 may be configured to perform only the functions of the PPME 102 or the power-performance workload scheduler 110. A coprocessor is a computer processor used to supplement the functionality of a primary processor (e.g., the CPU 502) by allowing the CPU 502 to offload tasks to the coprocessor.

[0079] Thus, by including a separate co-processor, the exemplary system 500 allows the processing burden of the PPME 102 and the power-performance workload scheduler 110 to be offloaded from the CPU 502. The power-performance co-processor 590 may 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 co-processor 590 may be implemented as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). Thus, through the discussion of the exemplary management systems 300, 400 and 500 in Figures 3-5, it should be understood that the functionality of the management system 100 and method 200 may be implemented differently in various embodiments.

[0080] The present invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium having a computer-readable program for causing a processor to perform aspects of the present invention.

[0081] A computer readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer readable storage media includes the following: portable computer diskettes, 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 compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves with instructions recorded thereon, and any suitable combination of the above. As used herein, a computer-readable storage medium should not be construed as a transitory signal itself, such as electric waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or electrical signals transmitted over electrical wires.

[0082] The computer readable program instructions described herein may be downloaded from a computer readable storage medium to the respective computing / processing device or to an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fiber, 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 the computer readable program instructions to a computer readable storage medium within the respective computing / processing device for storage.

[0083] The computer readable program instructions for carrying out the operations of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object oriented programming languages ​​such as Smalltalk®, C++, and procedural programming languages ​​such as the “C” programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer as a stand-alone software package, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a 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 the connection may be to an external computer (e.g., via the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to carry out aspects of the invention.

[0084] 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.

[0085] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, produce means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. These computer readable program instructions may be stored on a computer readable medium such that the computer readable storage medium on which the instructions are stored comprises an article of manufacture including instructions for performing aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams, and may instruct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner.

[0086] The computer readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device to create a computer-implemented process that causes a series of operational steps to be performed on the computer, other programmable apparatus, or other device, such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0087] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. It should be noted that each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur in a different order than that noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may be executed in reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or a combination of dedicated hardware and computer instructions.

[0088] Additionally, in some embodiments, at least a portion of the functionality of the PPME 102 or the power-performance workload scheduler 110, or both, may be implemented in a cloud computing environment. For example, in some embodiments, the management system 100 may be implemented in a cloud computing system, which may include many computers, hundreds or thousands of computers, disposed in one or more data centers and configured to share resources over a network. However, it should be understood that a cloud computing system is not limited to including hundreds or thousands of computers, and may include fewer than a few hundred computers. Some exemplary cloud computing embodiments are discussed in more detail below. However, it should be understood that, although the present disclosure includes detailed descriptions regarding cloud computing, implementation of the teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the present invention may be implemented in any other type of computing environment now known or later developed.

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

[0090] The characteristics are as follows: On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, automatically on an as-needed basis, without the need for human interaction with the service provider. Pervasive Network Access: Functionality is made available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin or thick client platforms (e.g., cell phones, laptops, and PDAs). Resource Pooling: In order to serve multiple consumers using a multi-tenant model, the provider's computing resources are pooled and different physical and virtual resources are dynamically allocated and reallocated according to demand. Location independence is significant in that the consumer typically has no control or knowledge over the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g. country, state or data center). Rapid Elasticity: Capacity can be rapidly and elastically provisioned, in some cases automatically, to instantly scale out, and rapidly released to instantly scale in. To the consumer, the capacity available for provisioning often appears unlimited and can be purchased in any quantity at any time. Measured Services: Cloud systems automatically control and optimize resource usage by leveraging metering at a level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both providers and consumers of utilized services.

[0091] The service model is as follows: Software as a Service (SaaS): The functionality provided to the consumer is the use of the provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application functions, with the possible exception of limited user-specific application configuration settings. Platform as a Service (PaaS): The functionality offered to the consumer is the deployment on a cloud infrastructure of applications that the consumer creates or acquires, written using programming languages ​​and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the application hosting environment configuration. Infrastructure as a Service (IaaS): The functionality offered to the consumer is to provision processing, storage, network, and other basic computing resources onto which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but does have control over the operating systems, storage, deployed applications, and in some cases, limited control over selected networking components (e.g., host firewalls).

[0092] The deployment model is as follows: Private Cloud: The cloud infrastructure is operated exclusively for an organization. The cloud infrastructure may be managed by that organization or a third party and may be on-premise or off-premise. Community Cloud: The cloud infrastructure is shared by multiple organizations to support a particular community with shared concerns (e.g., mission, security requirements, policy, and compliance considerations). The cloud infrastructure may be managed by the organizations or a third party and may reside on-premise or off-premise. Public Cloud: The cloud infrastructure is made available to the general public or large industry organizations and is owned by an organization that sells cloud services. Hybrid Cloud: The cloud infrastructure is a composite of two or more clouds (private, community, or public) that remain a unique entity but are joined by standardized or proprietary technologies that enable data and application portability (e.g., cloud bursting for load balancing between clouds).

[0093] Cloud computing environments are service-oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0094] Referring now to FIG. 6, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or cell phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computing device 54N, or combinations thereof, can communicate. The nodes 10 can communicate with each other. They may be physically or virtually grouped in one or more networks, such as a private cloud, a community cloud, a public cloud, or a hybrid cloud, or combinations thereof, as described above (not shown). This allows the cloud computing environment 50 to offer infrastructure, platform, and / or software as a service without the cloud consumer having to maintain resources on the local computing device. The types of computing devices 54A-N shown in FIG. 6 are intended to be exemplary only, and it is understood that the computing node 10 and cloud computing environment 50 may communicate with any type of computerized device over any type of network and / or network addressable connections (e.g., using a web browser).

[0095] Referring now to Figure 7, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 6) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 7 are intended to be merely exemplary, and embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0096] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (Reduced Instruction Set Computer) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0097] The virtualization layer 70 provides an abstraction layer over which the following examples of virtual entities may be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.

[0098] In one example, the management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to execute tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and provides billing or charging for the consumption of these resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, and protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides cloud computing resource allocation and management such that required service levels are met. Service Level Agreement (SLA) planning and fulfillment 85 provides pre-positioning and procurement of cloud computing resources where future requirements are anticipated according to SLAs.

[0099] The workload layer 90 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 91, software development and life cycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and power-performance based management systems 96.

[0100] Exemplary embodiments Example 1 includes a method for managing a computer system. The method includes receiving a workload for the computer system, sweeping at least one parameter of the computer system while executing the workload, and monitoring one or more characteristics of the computer system while sweeping the at least one parameter. The one or more characteristics include a total power consumption of the computer system. The method further includes generating a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter, and executing the workload based on the respective selected value of the at least one parameter.

[0101] Example 2 includes the method of example 1, further including receiving one or more constraints on at least one parameter of the computer system.

[0102] Example 3 includes the method of any of Examples 1-2, further including dividing the workload into two or more stages, where sweeping the at least one parameter includes sweeping the at least one parameter for each of the two or more stages, where monitoring the one or more characteristics includes monitoring the one or more characteristics while sweeping the at least one parameter for each of the two or more stages, and where generating a power profile includes generating a respective power profile for each of the two or more stages.

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

[0104] Example 5 includes the method of any of Examples 1-4, where the workload is a first workload, and where executing the workload based on the respective selected value of the at least one parameter further includes comparing a power profile of the first workload to a respective power profile of the one or more other workloads, identifying compatible workloads based on a comparison of the power profile of the first workload to the respective power profile of the one or more other workloads, and scheduling the compatible workloads to execute concurrently with the first workload.

[0105] Example 6 includes a method according to any of Examples 1 to 5, wherein the monitored one or more characteristics of the computer system 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 input / output bandwidth, and network bandwidth.

[0106] Example 7 provides the method of any of Examples 1-6, further comprising receiving an initial power profile for the workload, and generating the power profile comprises updating the initial power profile based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter.

[0107] Example 8 includes a computer management system. The computer management system comprises a storage device and a processor communicatively coupled to the storage device. The processor is configured to receive a workload for the 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 a total power consumption of the computer system. The processor is further configured to generate a power profile for the workload, indicating a respective selected value for the at least one parameter, based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter, store the power profile on the storage device, and execute the workload based on the power profile.

[0108] 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.

[0109] Example 10 includes the computer management system of any of Examples 8-9, where the processor is further configured to divide the workload into two or more stages, iteratively adjust at least one parameter for each of the two or more stages, monitor one or more characteristics while adjusting the at least one parameter for each of the two or more stages, and generate a respective power profile for each of the two or more stages.

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

[0111] Example 12 includes the computer management system of any of Examples 8-11, where the workload is a first workload, and the processor is further configured to compare a power profile of the first workload to a respective power profile of one or more other workloads, identify compatible workloads based on the comparison of the power profile of the first workload to the respective power profile of the one or more other workloads, and schedule the compatible workloads to run concurrently with the first workload.

[0112] Example 13 includes the computer management system of any of Examples 8-12, wherein the monitored one or more characteristics of the computer system 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 input / output bandwidth, and network bandwidth.

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

[0114] Example 15 includes a computer management system comprising a power-performance management engine configured to: sweep at least one parameter of the computer system while a workload is being executed; monitor one or more characteristics of the computer system including a total power consumption of the computer system while sweeping the at least one parameter; and generate a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system. The computer management system further comprises a power-performance workload scheduler configured to schedule the workload for execution based on the generated power profile.

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

[0116] Example 17 includes a method for managing a computer system. The method includes comparing a respective power-performance table for each of a plurality of workloads, each performance table indicating a respective value of one or more parameters of the computer system for executing the respective workload. The respective values ​​of the one or more parameters are selected based on monitoring one or more characteristics of the computer system including a power consumption of the computer system while iteratively adjusting the one or more parameters. The method further includes identifying at least two compatible workloads based on the comparison of the respective power-performance tables and scheduling the at least two compatible workloads for concurrent execution by the computer system.

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

[0118] Example 19 includes a method as described in any of Examples 18-19, where the one or more 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 input / output bandwidth, and network bandwidth.

[0119] Example 20 is a computer program product comprising a computer-readable storage medium having a computer-readable program stored thereon that, 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 including a total power consumption of the computer system while adjusting the at least one parameter, generate a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system, and execute the workload based on the generated power profile.

[0120] Example 21 includes the computer program product of Example 20, wherein the one or more 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 input / output bandwidth, and network bandwidth.

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

[0122] Example 23 includes the computer program product of any of Examples 20-22, where 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 a power profile of the first workload to a respective power profile of one or more other workloads, identifying a compatible workload based on a comparison of the power profile of the first workload to the respective power profile of the one or more other workloads, and scheduling the compatible workload to execute concurrently with the first workload.

[0123] Example 24 includes the computer program product of any of Examples 20-23, where the computer readable program is further configured to cause the processor to divide the workload into two or more stages, iteratively adjust at least one parameter for each of the two or more stages, monitor one or more characteristics while adjusting the at least one parameter for each of the two or more stages, and generate a respective power profile for each of the two or more stages.

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

[0125] Although specific embodiments have been illustrated and described herein, it will be understood by those skilled in the art that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. It is therefore manifestly intended that this invention be limited only by the claims and the equivalents thereof.

Claims

1. Receiving a workload for a computer system; sweeping at least one parameter of the computer system while executing the workload; monitoring one or more characteristics of the computer system while sweeping the at least one parameter, the one or more characteristics including a total power consumption of the computer system; generating a power profile of the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter; executing the workload based on the respective selected value of the at least one parameter; Including, the workload is a first workload, and executing the workload based on the respective selected values ​​of the at least one parameter includes: comparing the power profile of the first workload to a respective power profile of one or more other workloads; identifying compatible workloads based on the comparison of the power profile of the first workload to the respective power profiles of the one or more other workloads; scheduling the compatible workload to execute concurrently with the first workload; The method further comprises:

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

3. further comprising dividing the workload into two or more stages; Sweeping the at least one parameter includes sweeping 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 sweeping the at least one parameter for each of the two or more stages; The method of claim 1 , wherein generating a power profile comprises generating a respective power profile for each of the two or more stages.

4. 2. The method of claim 1, wherein sweeping the at least one parameter comprises sweeping at least one of a central processing unit (CPU) frequency, a graphics processing unit (GPU) frequency, a number of active cores in a multi-core processor, a memory bandwidth, a network bandwidth, and a device state.

5. 2. The method of claim 1, wherein the monitored one or more characteristics of the computer system 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 input / output bandwidth, and network bandwidth.

6. receiving an initial power profile for the workload; 2. The method of claim 1, wherein generating the power profile comprises updating the initial power profile based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter.

7. 1. A computer management system comprising: A storage device; A processor communicatively coupled to the storage device, the processor comprising: receiving a workload for a computer system; iteratively adjusting at least one parameter of the computer system while the workload is being executed; monitoring one or more characteristics of the computer system, including a total power consumption of the computer system, while adjusting the at least one parameter; generating a power profile of the workload indicating respective selected values ​​for the at least one parameter based on an analysis of the monitored total power consumption of the computer system while sweeping the at least one parameter; storing the power profile on the storage device; executing the workload based on the power profile; The processor, Equipped with the workload is a first workload, and the processor comparing the power profile of the first workload to a respective power profile of one or more other workloads; identifying compatible workloads based on the comparison of the power profile of the first workload to the respective power profiles of the one or more other workloads; scheduling the compatible workload to execute concurrently with the first workload; The computer management system further comprising:

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

9. The processor, Dividing the workload into two or more stages; iteratively adjusting the at least one parameter for each of the two or more stages; monitoring the one or more characteristics while adjusting the at least one parameter for each of the two or more stages; generating a respective power profile for each of the two or more stages; The computer management system of claim 7 further configured to:

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

11. 8. The computer management system of claim 7, wherein the monitored one or more characteristics of the computer system 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 input / output bandwidth, and network bandwidth.

12. The processor, receiving an initial power profile for the workload; updating the initial power profile based on an analysis of the monitored total power consumption of the computer system while adjusting the at least one parameter. The computer management system of claim 7 further configured to:

13. 1. A computer management system comprising:

1. A power and performance management engine, comprising: sweeping at least one parameter of the computer system while the workload is being executed; monitoring one or more characteristics of the computer system, including a total power consumption of the computer system, while sweeping the at least one parameter; generating a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system; the power and performance management engine configured as described above; a power-performance workload scheduler configured to schedule the workload for execution based on the generated power profile; Equipped with the workload is a first workload, and the power-performance workload scheduler further comprises: comparing the power profile of the first workload to a respective power profile of one or more other workloads; identifying compatible workloads based on the comparison of the power profile of the first workload to the respective power profiles of the one or more other workloads; scheduling the compatible workload to execute concurrently with the first workload; 5. The computer management system of claim 1 , further configured to schedule the first workload for execution by:

14. comparing respective power-performance tables for each of a plurality of workloads, each power-performance table indicating a respective value of one or more parameters of a computer system for executing a respective workload, the respective values ​​of the one or more parameters being selected based on monitoring one or more characteristics of the computer system, including a power consumption of the computer system, while iteratively adjusting the one or more parameters; identifying at least two compatible workloads based on the comparison of the respective power performance tables; scheduling the at least two compatible workloads for simultaneous execution by the computer system; A method comprising:

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

16. 15. The method of claim 14, wherein the one or more 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 input / output bandwidth, and network bandwidth.

17. 1. A computer program product comprising a computer readable storage medium having stored thereon a computer readable program, the computer readable program, when executed by a processor, causing the processor to: iteratively adjusting at least one parameter of the computer system while the workload is being executed; monitoring one or more characteristics of the computer system, including a total power consumption of the computer system, while adjusting the at least one parameter; generating a power profile for the workload indicating a respective selected value for the at least one parameter based on an analysis of the monitored total power consumption of the computer system; executing the workload based on the generated power profile; The workload is a first workload, and the computer readable program causes the processor to: comparing the power profile of the first workload to a respective power profile of one or more other workloads; identifying compatible workloads based on the comparison of the power profile of the first workload to the respective power profiles of the one or more other workloads; scheduling the compatible workload to execute concurrently with the first workload; and further configured to execute the first workload by Computer program products.

18. 20. The computer program product of claim 17, wherein the one or more 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 input / output bandwidth, and network bandwidth.

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

20. The computer readable program causes the processor to: Dividing the workload into two or more stages; iteratively adjusting the at least one parameter for each of the two or more stages; monitoring the one or more characteristics while adjusting the at least one parameter for each of the two or more stages; generating a respective power profile for each of the two or more stages; 20. The computer program product of claim 17, further configured to:

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

Citation Information

Patent Citations

  • Power-aware job scheduler and manager for data processing systems

    JP2017531245A

  • System and Method for Managing Energy Consumption in a Compute Environment

    US20140075222A1