CN102473131A - 组件功率监测和工作负荷优化 - Google Patents

组件功率监测和工作负荷优化 Download PDF

Info

Publication number
CN102473131A
CN102473131A CN2010800331432A CN201080033143A CN102473131A CN 102473131 A CN102473131 A CN 102473131A CN 2010800331432 A CN2010800331432 A CN 2010800331432A CN 201080033143 A CN201080033143 A CN 201080033143A CN 102473131 A CN102473131 A CN 102473131A
Authority
CN
China
Prior art keywords
working load
configuration
system configuration
hardware
expression formula
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010800331432A
Other languages
English (en)
Inventor
S·N·麦格雷恩
S·R·贝拉尔迪
B·L·沃辛顿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102473131A publication Critical patent/CN102473131A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Power Sources (AREA)

Abstract

组件级功率监测系统可以通过确定由各单独的组件为工作负荷消耗的能量来分析工作负荷。通过比较不同的系统配置或通过修改软件操作,可以根据消耗的能量来执行优化的工作负荷。在某些实施例中,可以尝试若干系统配置来确定优化的系统配置。在其他实施例中,监测系统可以通过改变线程亲和关系或以其他方式将某些操作分配到特定组件来改变应用程序执行的方式。组件级监测可以被实现为操作系统级函数调用。

Description

组件功率监测和工作负荷优化
背景
当计算设备的各种组件被使用时,计算设备消耗电能。在很多情况下,计算设备的工作负荷可以影响消耗多少能量。例如,被极度地使用的处理器可以比空闲或被轻微地使用的处理器消耗多得多的能量。
在数据中心环境中,大量的服务器计算机可以执行各种工作负荷。在很多情况下,数据中心可以具有许多不同类型的硬件和不同的工作负荷。数据中心可以消耗非常大量的能量,并产生大量的热量。在很多情况下,数据中心管理员可以使用虚拟化技术来管理工作负荷。虚拟化技术可以是可以从一个硬件设备移到另一个设备以合并或扩展功能的虚拟应用程序或虚拟机。
概述
组件级功率监测系统可以通过确定各单独组件为工作负荷消耗的能量来分析工作负荷。通过比较不同的系统配置或通过修改软件操作,可以根据消耗的能量来执行优化的工作负荷。在某些实施例中,可以尝试若干系统配置来确定优化的系统配置。在其他实施例中,监测系统可以通过改变线程亲和关系(affinity)或以其他方式将某些操作分配到特定组件来改变应用程序执行的方式。组件级监测可以被实现为操作系统级函数调用。
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图简述
在附图中,
图1是示出了带有工作负荷管理器的设备的实施例的图示。
图2是示出了网络环境中的工作负荷管理器的实施例的图示。
图3是示出了用于为工作负荷优化配置的方法的实施例的流程图。
图4是示出了用于监测工作负荷效率的方法的实施例的流程图。
图5是示出了用于当操作工作负荷时使用效率的方法的实施例的流程图。
详细描述
可以通过监测计算机硬件系统的各种组件并基于根据消耗的能量的量所执行的工作量来确定效率的测量,来分析计算机工作负荷。对于给定工作负荷,可以以函数、数据结构或其他机制来定义能量消耗,以便可以执行系统配置的比较。该比较可以标识以高效率操作工作负荷的那些配置。
硬件设备可装备有各种功率感测组件。在某些实施例中,操作系统级功能可以收集可以被监测或优化软件应用程序使用的能量消耗数据。可以装备的组件可包括处理器和存储器组件、桥接器、风扇、电源,以及外围设备、嵌入式控制器,及其他组件。
在某些实施例中,优化过程可以涉及评估两个或更多不同的系统配置上的工作负荷,然后选择更高效的系统配置。一些实施例可以以不同的配置来配置单个硬件平台,诸如例如在一个或多个不同的处理器上或者利用不同的外围设备操作工作负荷。其他实施例可以评估带有不同配置的不同硬件平台,诸如当管理其中虚拟机或其他工作负荷可以从一个服务器计算机移动到另一个服务器计算机的数据中心环境时可以执行。
在整个说明书中,效率的概念是指每单位能量所执行的工作单元。对于各种工作负荷,可以以不同的方式定义工作单元。例如,某些工作负荷可以是处理器密集的,并涉及大量的计算。在这样的工作负荷中,工作单元可以通过执行的计算的数量来度量。在该示例中,高效的系统配置可以利用最低能耗执行最多计算。最高效的系统配置可能不是最快的系统配置。
在另一示例中,工作负荷可以处理诸如电子邮件分发系统之类的消息。在这样的示例中,工作负荷的工作单元可以是所处理的消息的数量,而效率可以被表示为每单位能量所处理的消息的数量。
术语“功率”是指消耗能量的速率。一些实施例可以以每个给定时间单位的能量来表示功率。在某些实施例中,可以通过瞬时测量或通过计算在一段时间内消耗的能量并将该值除以该时间段来确定功率。
尽管不同的实施例可以以不同的方式来计算能量和功率,但是测量功率消耗的许多设备可以使用单位“瓦特”,并可以通过将以安培为单位的直流电的瞬时电流测量乘以以伏特为单位的电压来这样做。术语“能量”可以是功率随时间的积分。例如,以千瓦时为单位的能量是在一时间段内测量的以瓦特为单位的平均功率乘以该时间段,在此情况下该时间段是以小时来度量的。其他实施例可以使用其他方法来确定能量或功率消耗,包括可以使用功率因数的表达式的交流电电流实施例等等。
在某些实施例中,可以直接测量功率,并可以根据多个瞬时测量值来估计或计算能量。在其他实施例中,可以直接测量能量,并可以计算功率。在某些实施例中,某些组件可以直接测量功率,而其他组件可以直接测量能量。在又一些其他实施例中,可以间接地测量能量或功率,诸如测量可以用来计算能量或功率的温度或其他参数。
可以至少部分地通过将各组件所消耗的能量相加来确定由设备所消耗的总能量。在某些实施例中,可以通过将由每一单独组件所消耗的能量相加来确定总能量。在其他实施例中,可以使用函数或其他机制来计算总能量,且这样的机制可包括来自由各单独组件消耗的测量的能量中的每一个的输入。
贯穿本说明书,在所有附图的描述中,相同的附图标记表示相同的元素。
当元件被称为被“连接”或“耦合”时,元件可以直接连接或耦合在一起,或者也可以有一个或多个元件介于其间。相比之下,当元件被称为“直接连接”或“直接耦合”时,没有元件介于其间。
本发明可被具体化为设备、系统、方法、和/或计算机程序产品。因此,本发明的一些或全部可以以硬件和/或软件(包括固件、常驻软件、微代码、状态机、门阵列等等)来具体化。此外,本发明还可以采用其上包含供指令执行系统使用或结合其使用的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。在本文档的上下文中,计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释或以其他合适的方式处理,并随后存储在计算机存储器中。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”是指以在信号中编码信息的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。
当本发明在计算机可执行指令的一般上下文中具体化时,该实施例可包括由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
图1是示出了带有工作负荷管理系统的系统的实施例100的图示。实施例100是可以监测硬件组件的功率并使用能量消耗来标识最优系统配置的系统的简化示例。
图1的图示出了系统的功能组件。在某些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。这些组件中的一些可以是应用级软件,而其他组件可以是操作系统级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨任意长的距离的网络连接来进行。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。
实施例100是能够监测各硬件组件的能量消耗的经装备的设备的示例。可以针对工作负荷来评估能量消耗,并可为该工作负荷确定优化系统配置。
用于在组件级监测功率或能量消耗的机制可以用于优化单个设备的工作负荷效率(诸如在实施例100中),或者用于选择要在其上执行工作负荷的高效设备(如在本说明书稍后呈现的实施例200所示)。实施例100可以用于可以以不同的方式配置设备以操作工作负荷的情况。实施例200可以用于其中若干不同的硬件平台或设备可以执行工作负荷的数据中心或其他环境中。
可以通过在两个或更多不同的系统配置上执行工作负荷,然后基于在在每一个系统配置上执行过程中测量到的能量消耗来确定最优系统配置,来确定优化的工作负荷效率。
在某些情况下,可以通过比较在若干系统配置上观测到的效率并选择具有最高效率的系统配置,来选择优化的工作负荷效率。在其他情况下,可以通过为各种系统组件选择可以产生高效的工作负荷的某些硬件组件或设置,来确定优化的工作负荷效率。在这样的情况下,所选系统配置可以是以前未测试过的系统配置。
一般而言,工作负荷效率可以是由消耗的能量所执行的工作的函数。不同的实施例可以具有可以被用来描述工作负荷效率的不同函数,并可以使用各种数据结构、函数、参数或用于描述效率并比较效率的其他机制。
对于本说明书和权利要求书,工作负荷可以是可以在硬件平台上执行的任何软件组件或系统。在某些情况下,工作负荷可以是执行特定功能的单个线程或进程。在其他情况下,工作负荷可以是作为计算机应用程序来操作的进程的多线程化集合。某些工作负荷可以是诸如虚拟应用程序和虚拟机之类的虚拟化组件。在某些情况下,工作负荷可以涵盖在设备上操作的所有软件,可包括操作系统、应用程序以及各种其他组件。
每一个工作负荷都可以具有由该工作负荷所执行的工作单元。工作单元可以被用来确定工作负荷的效率。在某些实施例中,可以通过监测由每一工作负荷所执行的计算的数量来在一般性意义上对该工作负荷进行度量。在这样的实施例中,计算的数量可以是表示或近似所执行的工作量的一般参数。这样的参数可以用于测量任何工作负荷的效率。对效率的度量可以是每单位能量所执行的计算的数量。
在其他实施例中,工作负荷可以有助于工作的其他度量。例如,执行光学字符识别的工作负荷可以将工作单元作为评估的字符的数量或扫描的页数来度量。在这样的情况下,可以通过将扫描的页数除以消耗的能量来计算效率度量。
在另一示例中,某些工作负荷对请求作出响应,而在这样的情况下,请求可以是所执行的工作的度量。示例可包括对查询作出响应的数据库应用程序或对浏览器请求作出响应的web服务器。在这样的情况下,可以通过将请求数除以消耗的能量来计算效率度量。
在很多情况下,系统的效率可以是许多不同的交互组件的函数。例如,在高速但高功耗模式下操作的处理器当与高速存储设备耦合时可以具有高效率,因为每单位能量可以执行大量工作。同一硬件可以被配置成在低功率模式下操作处理器,当耦合到同一高速存储设备时,可能更高效,也可能不更高效。
在某些实施例中,可以通过计算各单独组件的效率并将效率相加,来评估效率的度量。在许多这样的实施例中,总效率可以被表示为若干单独的组件效率的函数。在上面的示例中,系统的总效率可包括处理器的效率度量和存储设备的分开的效率度量。
在某些实施例中,优化例程可以比较不同系统配置的效率表达式,并创建优化的系统配置。在某些这样的实施例中,可以比较不同组件的效率,以标识优化的系统配置,以取得最高或优化的效率。在某些实施例中,可以只通过选择具有最高计算出的效率的经测试的系统配置来确定优化的系统配置。在其他实施例中,可以基于组件级效率来选择组件或组件的配置以确定优化的系统配置。在这样的实施例中,优化的系统配置可以是以前未测试过的系统配置。
对于本说明书和权利要求书,系统配置可以是可以除正在被执行的工作负荷以外的任何可改变的事物的配置。当在不同的系统配置上运行工作负荷时,工作负荷可以包括在不同的系统配置之间不改变的可执行指令。
系统配置可以是在其中执行工作负荷的环境。该环境可包括硬件、软件、固件或系统之间的其他差异。在某些情况下,不同的系统配置可以具有不同的物理硬件组件,如不同的处理器或数据存储设备。在某些情况下,不同的系统配置可以是相同的物理组件的不同设置或配置,如导致设备以某一方式操作、启用或禁用某些部件、在低功率模式下操作的软件或固件设置或其他配置设置。这样的配置设置可以是对软件、固件、BIOS、注册表项、数据寄存器或其他配置的更改。
在某些实施例中,系统配置可包括对除工作负荷之外的在系统上操作的软件的配置更改。例如,工作负荷可以在操作系统环境内执行,如应用程序。另一个示例可以是在虚拟机主机环境内执行的虚拟机工作负荷。对虚拟机上的虚拟机主机或设置的更改可以导致工作负荷以不同的效率来执行。
实施例100示出了可以具有能够监测各组件的功率或能量消耗的装备的设备102。组件的装备可以被嵌入在组件内或在组件外部,并可以用于监测功率或能量消耗。
设备102的硬件组件104可包括处理器106。处理器106可以执行指令以执行各种功能。一些实施例,如设备102所示,可以具有多个处理器,而每一个处理器都可以具有多个处理器核。诸如服务器计算机之类的一些实施例可以具有多个处理器,其中每个处理器都具有多个处理器核。
如图所示,处理器106可以是具有双核110和112的处理器。多核处理器106的一些实施例可以具有能够跟踪整个处理器106的功率或能量消耗的监测器108。在某些这样的实施例中,可以不跟踪由每一单独的核110或112所消耗的能量功率。其他实施例可以允许监测器108来分开跟踪每一个核110和112的功率。在某些实施例中,每一个处理器核110和112都可以具有分开的监测器114和116。
一些实施例可以具有不相同的并可以被视为异质的多个处理器或核。例如,处理器可以包含两个核,一个具有较快的速度,一个具有较慢的速度。另一个示例可以是具有带有特定功能和性能特征的处理器和带有不同功能和性能特征的第二处理器的设备。在这样的示例中,工作负荷可以在每一个处理器或核上执行,并且可以监测功率或能量消耗。优化的系统配置可包括以消耗的最低的功率执行工作负荷的处理器。在某些情况下,较慢的处理器可以以更高的效率执行工作负荷,而在其他情况下,更快的处理器可以更高效。
在某些实施例中,处理器及其他组件可以是可配置的,以便以不同的方式进行操作。例如,某些处理器可以被配置成以不同的处理器频率进行操作。当以较高的频率操作时,处理器可能消耗较多的能量,但执行较多的计算。类似地,处理器可以以较低频率操作,并消耗较少的能量,但执行较少的计算。
在某些这样的实施例中,系统配置可以将某些进程或软件线程分配到特定处理器。例如,计算繁忙的软件线程可以被配置成在被设置为以高频率操作的处理器上操作,而另一个软件线程可以被配置成在被设置为以低频率操作的不同处理器上操作。软件线程可以是作为组来执行的一组连续任务或可执行指令。在很多情况下,单个应用程序或进程可以具有若干线程,其中每一个线程都可以使用不同的处理器来并行执行或当两个或更多线程在同一个处理器上执行时通过时分复用来并行地执行。
硬件组件104可包括存储器118,该存储器118可以是由处理器106所使用的随机存取存储器。随机存取存储器可以是用于存储可执行命令和由处理器106所创建的或所使用的数据的高速存储器。在某些实施例中,存储器118可以是易失性存储器。存储器118可以由若干子组件构成。例如,个人计算机和服务器计算机系统常常被配置有2、4、8或任何数量的存储器组件。这样的存储器组件的一个示例可以是双列直插存储器模块(DIMM)。
存储器118可以具有可以监测和报告该单独设备的功率或能量消耗的内部监测器120。在某些情况下,分开的或外部监测器122可以将存储器118作为整体或作为各单独子组件来监测存储器118的功率或能量消耗。
在某些实施例中,某些存储器子组件可以具有不同的性能特征。例如,用户可以通过填充以前没有被填充的存储器插槽来升级设备102上的存储器118。新添加的存储器可以是存储器118的较新版本,并可以具有不同的性能特征和不同的功率或能量消耗。
存储124可以是用于存储应用程序和数据的设备并且可以是非易失性存储器。存储124可以被处理器106访问以加载可执行的软件并在执行过程中存储数据。通常,存储124的性能可以比存储器118慢得多。存储124的示例可以是硬盘驱动器、固态存储器设备、磁带存储器系统及其他存储设备。
类似于存储器118,存储124可以具有用于各单独子组件的各单独监测器126或一分开的监测器128。分开的监测器128可以将存储124各组件作为组来测量存储124各组件的功率或能量用量,或者能够测量各单独存储124组件的功率或能量用量。
计算设备具有许多不同类型的体系结构。在被设计用于扩展或用于制造带不同选项的某些设备中,体系结构可包括用于附接不同的外围设备130的总线134。在某些情况下,外围设备130可以具有印刷电路板或到总线134的其他连接。
在某些实施例中,总线134可以是计算设备内部的,如PCI、PCI-X、ISA、EISA或到计算主板的许多其他类型的标准化印刷电路板接口。
在某些实施例中,总线134可以是计算设备外部的。在这样的配置中,外围设备130可以使用诸如通用串行总线、小型计算机系统接口(SCSI)、PCMCIA或其他连接来进行连接。
外围设备130可以是可以被添加到计算机设备中的任何类型的组件。在某些情况下,外围设备130可以是整合的,以允许设备102操作,如可包括可引导存储124设备的外围设备130。外围设备130可以是诸如相机、视频显示器、键盘、定点设备、音频输入/输出设备、打印机、扫描仪或其他设备之类的输入和输出设备。在某些情况下,外围设备130可包括到其他计算机设备的连接,并可包括网络连接138。
在某些实施例中,各单独的外围设备130可以具有监测器132。监测器132可以从外围设备130本身收集功率或能量消耗数据。在某些实施例中,总线134可以具有监测器136。监测器136能够将总线134作为整体或对于附接到总线134的各单独外围设备130来确定总线134的功率或能量消耗。
各种网络连接138可以是硬件组件104的一部分。网络连接138可以允许设备102直接或者通过网络连接到其他设备。网络连接138的示例可包括各种串行或并行端口,以太网端口,诸如IEEE 802.11(WiFi)、IEEE802.16(WiMax)之类的无线连接,诸如CDMA、TDMA、GSM之类的蜂窝电话连接及其他无线连接。
在某些情况下,各单独的网络连接138可以具有能够测量功率的监测器140。这样的监测器140可以例如整合到执行网络连接的芯片组或设备。一些实施例可以具有分开的监测器142,该分开的监测器142可以分开监测所有网络连接138,以提供每一个网络连接138的单独功率或能量消耗信息,或者能够监测所有或一组网络连接138的功率或能量消耗。
所示出的硬件组件104是经装备的硬件平台的一个实施例的示例。在某些实施例中,实际上可以装备所示出的组件的子集。装备可以包括监测由设备消耗的功率或能量的硬件、固件或软件组件。在某些示例中,装备可包括直接测量电流消耗或执行其他物理测量的硬件传感器。在其他示例中,装备可以基于诸如温度或其他输入之类的各种可测量的条件来估计功率或能量消耗。在这样的示例中,固件或软件组件可以估计设备的功率或能量消耗。
各种监测器可以被各种软件组件107用来确定能量消耗和计算各种工作负荷的效率。效率可以反映每单位能量的工作单元。在很多情况下,硬件组件104可以被配置成以不同的方式来执行工作负荷。通过检查若干不同系统配置的效率,可以使用高效的配置来在最小化能量消耗的情况下执行工作负荷。
软件组件107可包括可包含监测API 146的操作系统144。监测API 146(即应用程序编程接口)可以是一组操作系统级调用,它们允许监测应用程序148请求一个或多个监测器的功率或能量消耗信息。
监测API 146可以利用各种监测器来执行低层通信,以收集功率或能量消耗信息。通过在操作系统144内包括监测API 146,从各种监测器执行的数据收集比通过监测应用程序148来进行这样的调用的情况更快,并且更可靠。操作系统级监测API 146可以支持对监测器的实时调用,并可以允许对监测器的调用与特定工作负荷或工作负荷的一部分的执行相协调。在这样的实施例中,操作系统144能够标识工作负荷,并使用监测API 146来协调对监测器的调用。
监测器应用程序148可以执行对监测API 146的调用,并收集特定工作负荷的功率或能量消耗数据。在某些实施例中,监测应用程序148可以是执行数据收集的进程,并可以将收集到的数据合并到统计数据、函数或对被监测的工作负荷的效率的其他高级描述中。
工作负荷管理器150可以基于效率来管理工作负荷,并可以协调对系统配置的评估以得到效率。在一个规则中,工作负荷管理器150可以标识若干不同的系统配置以进行评估,然后对每一个系统配置上的工作负荷执行评估。在执行评估时,结果可以被存储在性能数据库151中。在执行了评估之后,优化器152可以确定工作负荷的优化系统配置,该配置也可以被存储在性能数据库151中。
在某些情况下,工作负荷管理器150能够在工作负荷正在操作时切换该正在执行的工作负荷的系统配置。例如,工作负荷管理器可以在进程线程正在执行时将该线程的亲和关系从一个处理器核改变到另一个。到进行这样的改变时,可以评估各处理器的功率或能量消耗,以确定功率或能量消耗中的任何变化。这样的操作的示例可以通过本说明书中稍后呈现的实施例300来示出。
在管理工作负荷时,工作负荷管理器150可以查询性能数据库151来确定特定工作负荷的优化系统配置,然后使用该优化系统配置来启动该工作负荷。在这样的操作中,工作负荷管理器150可以管理工作负荷,以便这些工作负荷基于以前收集到的数据以最高效的配置来执行。这样的操作的示例可以通过本说明书中稍后呈现的实施例500来示出。
工作负荷管理器150可以管理许多不同的工作负荷,包括应用程序154、虚拟应用程序156以及虚拟机158。在某些情况下,可以分开地或一起作为单个被监测的工作负荷来管理各工作负荷。在某些情况下,操作系统可以被视为工作负荷的一部分。
图2是示出了带有工作负荷管理系统的第二系统的实施例200的图示。实施例200是可以监测硬件组件的功率或能量消耗并使用功率或能量消耗来标识最优系统配置并可以在数据中心环境中操作的系统的简化示例。
图2的图示出了系统的功能组件。在某些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。这些组件中的一些可以是应用级软件,而其他组件可以是操作系统级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨任意长的距离的网络连接来进行。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。
实施例200是可以部署在数据中心的系统的示例,其中优化服务器202可以管理许多不同设备上的工作负荷。在许多现代数据中心中,工作负荷可以被虚拟化,并能够从一个硬件平台移到另一个硬件平台。虚拟化技术的一个用途可以是当需求下降时将工作负荷合并到少量的服务器计算机中,并在需求增加时通过将某些工作负荷移动到未充分使用的服务器计算机上来进行负载平衡。
在实施例200中,优化服务器202可以是管理许多不同设备上的各工作负荷222的系统。在实施例200的示例中,可以在设备210、212,以及214上管理工作负荷。在许多数据中心中,可以管理数百或数千设备。
优化服务器202可包括工作负荷管理器204、监测应用程序206以及优化器208。
一般而言,工作负荷管理器204可以执行与实施例100的工作负荷管理器150类似的功能。工作负荷管理器204可以使用功率效率来标识特定工作负荷的优化的系统配置。
在某些实施例中,工作负荷管理器204可以评估单个设备的不同配置。例如,设备210可以是可配置的,以便工作负荷可以在特定处理器核上或利用特定存储器设备来执行。设备210的另一种配置可以是使用两个核和不同的存储器设备。通过比较每消耗的能量所执行的工作,可以确定每一配置的效率的度量。
工作负荷管理器204能够以某些方式来配置设备。例如,工作负荷管理器204可以结合在设备210上操作的应用程序或服务(诸如分别在设备210、212以及214上所示出的配置服务211、213和215)一起工作以配置设备210。在这样的使用中,工作负荷管理器204可以确定包含各种设置的配置,并将该配置发送到在设备210上操作的配置服务211。配置服务211可以接收配置,并在执行特定工作负荷时应用该配置。
配置服务211能够改变设备210上的各种设置。在某些情况下,配置服务211能够将工作负荷的操作限制到设备210上的特定组件子集,并能够关闭其他组件或使得未使用的组件在低功率模式下操作。配置服务211能够将工作负荷线程的亲和关系设置到特定处理器或处理器核,将工作负荷的存储器或存储定向到特定存储器或存储设备,或使得各种外围设备被工作负荷使用或不被其使用。
配置服务211可以通过与硬件或诸如操作系统级软件之类的低级软件进行对接来操作,以使某些组件和子组件对工作负荷可用。在这样的情况下,设备210可以被配置成使得工作负荷不被更改或改变。在这样的实施例中,配置信息可以与工作负荷分开发送到设备210,并且配置信息可以被用来在执行工作负荷之前配置设备210。例如,配置设置可包括可以使得工作负荷以不同的效率执行的操作系统设置,无需以任何方式来改变工作负荷。
在另一种实现中,工作负荷管理器204可以通过将特定配置信息添加到工作负荷中来操作,其中工作负荷可以包含描述如何执行工作负荷的信息。当执行工作负荷时,工作负荷可以请求特定处理器、存储器设备、外围设备或其他配置参数。在这样的情况下,设备210可以执行工作负荷,而无需使用配置服务211。
在一个这样的实施例中,工作负荷可以是虚拟机。许多虚拟机系统具有由主机设备执行的可配置的虚拟机。虚拟机可以通过分配存储器、处理器、存储、外围设备以及到虚拟机的网络连接来配置。由虚拟机执行的软件可以被存储在虚拟硬盘驱动器中。
工作负荷管理器204可以通过改变存储器、处理器、存储、外围设备以及网络连接来配置虚拟机工作负荷。例如,当虚拟机被转移到设备210时,虚拟机可以使用由工作负荷管理器204所定义的配置来执行。
当设备210、212以及214正在执行时,监测器216、218以及220分别可以监测各种组件以及子组件的功率或能量消耗。监测应用程序206可以与监测器216、218以及220进行通信,以配置监测器并接收功率或能量消耗信息。
监测应用程序206可以配置监测器216、218以及220以定义可以收集什么信息以及何时收集信息。例如,监测器可以被配置成收集可用组件的子集的功率或能量消耗信息。监测器可以被配置成收集在特定时间段内的功率或能量消耗信息,或者例如当特定工作负荷执行特定功能时的功率或能量消耗信息。
监测应用程序206可以以不同的方式从监测器216、218以及220接收数据。在某些情况下,监测器可以被配置成收集特定工作负荷的数据,并当工作负荷完成时,将数据发送到监测应用程序206。在其他情况下,监测器可以被配置成收集数据并以预定义的频率或在特定的事件发生之后将数据发送到监测应用程序206。例如,监测器可以被配置成每五分钟传输收集到的数据,或者可以被配置成在工作负荷的某一部分完成之后或者当功率或能量消耗或活动超过阈值时传输收集到的数据。
在某些实施例中,监测器216、218以及220可以被配置成将数据传输到监测应用程序206。在这样的实施例中,监测器可以启动数据传输。在其他实施例中,监测应用程序206可以向监测器发送请求,其中监测器通过传输数据来对请求作出响应。在这样的实施例中,可以将请求发送到各单独的监测器或各监测器组。
监测应用程序206可以利用描述工作负荷的能量效率的历史数据连同其配置来更新性能数据库224。在某些实施例中,可以利用概要统计数据来更新性能数据库224,该概要统计信息可以是特定系统配置中的工作负荷的总能量效率。其他实施例可包括若干被监测的组件的功率或能量消耗以及特定系统配置。
优化服务器202可以包含可以基于来自性能数据库224的历史数据来确定优化配置的优化器208。优化配置可以存储在性能数据库224中,并被工作负荷管理器204用来配置设备或选择用于执行工作负荷的设备。
工作负荷222可以是可以在设备上执行的任何软件工作负荷。工作负荷的示例包括实施例100中所讨论的应用程序154、虚拟应用程序156以及虚拟机158。
在某些实施例中,会计系统226可以确定用于执行工作负荷的货币成本。货币成本可以完全地或部分地由工作负荷的能量消耗来确定。在这样的实施例中,对消耗少量的能量的工作负荷的收费可以比消耗较多的能量的工作负荷少。可以以不同费率对每一个组件和子组件的能量消耗进行收费,并且可以通过将每一个组件和子组件的能量消耗相加来确定总成本。
会计系统226可以标识哪些组件被用来执行工作负荷。在这样的情况下,可以通过应用基于组件的效率来确定每一个组件的成本的公式,然后将各种组件成本相加,来确定用于执行工作负荷的总成本。在某些实施例中,组件的成本可以与组件对于工作负荷的效率成反比。例如,可以向对于给定工作负荷具有低效率的组件以比对于工作负荷以较高效率操作的组件更高的费率进行收费。这样的示例可以鼓励开发和部署最大化效率和减少总能量消耗的工作负荷。
图3是示出了用于为工作负荷优化配置的方法的实施例300的流程图。实施例300是可以由诸如实施例100的工作负荷管理器150或实施例200的优化服务器202之类的工作负荷管理器执行的过程的示例。
其他实施例可以使用不同的顺序、更多的或更少的步骤、以及不同的命名法或术语来实现类似的功能。在某些实施例中,各操作或操作集合可以与其他操作平行地以同步或异步方式执行。这里所选择的步骤被选择以便以简化形式示出某些操作原理。
实施例300示出了根据可以在其上执行工作负荷的硬件的组件和子组件的功率或能量消耗来评估不同的系统配置的方法。一般过程可以包括定义要测试的若干配置,然后使用该配置来执行工作负荷。在当执行每一个配置时收集数据之后,可以确定优化系统配置。
实施例300示出了测量每一个系统配置的功率或能量消耗并根据能量消耗确定效率的方法。在某些实施例中,可以在没有工作负荷的情况下确定基线能量消耗,由各种组件测量到的任何功率或能量消耗的增大可以被用来生成包括基线功率或能量消耗加由于工作负荷而造成的功率或能量消耗的表达式。
基线功率或能量消耗可以用于不同的场景中。在某些实施例中,现有的工作负荷可以在系统上操作。现有的工作负荷可以只是操作系统或其他管理软件。在某些情况下,现有工作负荷可以是可以与被监测的工作负荷同时执行的一组应用程序、虚拟机或其他工作负荷。在这样的情况下,监测可以测量由于被监测的工作负荷的添加而造成的功率或能量消耗的增量或变化。
在另一种场景中,基线功率或能量消耗可以是当没有工作负荷存在时设备可以消耗或维持的空闲或稳态功率或能量消耗。
在框302中,可以标识工作负荷。工作负荷可以是可以由处理器及其他硬件执行的任何一组软件组件。通常,工作负荷可以是应用程序、虚拟应用程序、虚拟机或其他软件组件或一组软件组件。在某些情况下,工作负荷可包括操作系统以及若干应用程序。
在框304中,可以定义各种系统配置。在不同的系统配置的全体是受限的情况下,框304中的系统配置可以是不同配置的穷尽列表。例如,单个硬件平台可以具有数量有限的处理器和存储器组合。在对系统配置进行优化时,可以测试处理器和存储器组合的每一个组合。
在某些情况下,系统配置的全体可以非常大。例如,数据中心可以具有数百或者甚至数千系统配置,并可以维持硬件的数百不同配置,每一个都可以具有不同的配置可用。在这样的示例中,框304中的系统配置可以仅限于以前测试和优化的系统配置上的若干个典型的系统配置或变化。
可以在框306中选择初始系统配置,并可以在框308中配置硬件。可以以许多不同的方式来配置硬件。在某些情况下,可以使用操作系统或低级配置设置来配置硬件,以便当执行工作负荷时,工作负荷将如配置的那样在硬件上操作。这样的配置可以在执行工作负荷之前设置。
在某些情况下,工作负荷可以被配置成以预定义的方式使用硬件。在这样的情况下,工作负荷可包括系统配置文件或可包括定义工作负荷将如何在硬件上起作用的其他设置。上面的示例描述了如何在执行之前通过设置处理器、存储器及其他配置来将虚拟机配置为以某一方式操作。
当工作负荷正在运行时,可以在框312中监测功率或能量消耗。监测可以对于硬件的各单独的组件和子组件执行,并可以执行计算以根据每单位能量的工作来确定工作负荷的效率。在本说明书的稍后的实施例400中呈现了用于监测工作负荷效率的方法的示例。
在某些实施例中,可以重复地或连续地监测功率或能量消耗,如围绕框312的回环箭头所示。在某些这样的实施例中,可以以周期性的间隔来测量功率或能量消耗。在其他实施例中,功率或能量消耗可以执行一次,并且该过程可以前进到框314。
在框314中,可以将效率信息存储在性能数据库中。如果在框316中将评估新配置,则可以在框318中评估下一系统配置。如果在框316中没有其他配置可用,则过程可以在框320中返回到框312以继续执行。
如果将在框320中执行优化,则可以在框322中确定优化系统配置。可以在框324中选择优化系统配置,并且该过程可以返回到框308以执行工作负荷。在这样的情况下,工作负荷可以连续地在优化系统配置中来操作。
在某些实施例中,可以当执行工作负荷时执行实施例300的过程。在执行期间,可以例如通过将处理器线程的亲和关系设置到特定处理器来改变系统配置,或者可以在执行期间进行其他改变。在某些情况下,当更改系统配置时,可以短暂地挂起工作负荷,然后重新启动。这样的实施例可包括虚拟机实施例,其中可以在一个硬件平台上暂停或挂起虚拟机,然后转移到另一个硬件平台以恢复执行。
框322的优化可以是任何形式的优化。在某些实施例中,优化可以是基于配置的效率来简单地从一组以前评估的系统配置中选择一种系统配置。
系统配置的效率可以由每单位能量的工作单元所定义。在某些情况下,优化可以是对于由所有被测量的组件和子组件消耗的聚合功率或能量进行的优化。在其他情况下,优化可以评估每一个被测量的组件,并尝试发现最佳地使用尽可能多的组件的系统配置。
在某些实施例中,框322的优化可以标识以前评估或测试的系统配置。在这样的实施例的一个示例中,框322的优化可以评估若干以前测试的系统配置,并通过分开评估每一个硬件组件而并非将它们作为一组来评估以找出硬件组件的最优组合。
图4是示出了用于监测工作负荷效率的方法的实施例400的流程图。实施例400是可以由实施例300的框312执行的过程的示例。
其他实施例可以使用不同的顺序、更多的或更少的步骤、以及不同的命名法或术语来实现类似的功能。在某些实施例中,各操作或操作集合可以与其他操作平行地以同步或异步方式执行。这里所选择的步骤被选择以便以简化形式示出某些操作原理。
实施例400是可以扫描硬件组件并更新硬件组件的效率表达式的过程的示例。实施例400可以在工作负荷执行时连续地扫描硬件组件。其他实施例可以使用用于收集功率消耗数据并创建效率表达式的其他方法或序列。
效率表达式可以根据消耗的每单位能量所执行的工作来定义工作负荷的效率。在许多实施例中,效率表达式可以是各组件的分开效率的形式,其中总效率可以是这些组件的若干效率的总和。在某些实施例中,效率表达式可以是表示总效率的单个数量。
工作负荷可以在框402中开始,并且当工作负荷在框404中运行时,可以扫描组件的功率或能量消耗。
对于框406中的每一个硬件组件,可以在框408中对组件的功率监测器进行操作系统调用。通过使用框408中的调用的结果,可以在框410中更新组件的效率。
该过程可以扫描所有硬件组件,然后重复直到工作负荷在框412中停止。
在某些实施例中,硬件组件的效率可以被表示为每消耗单位能量的工作单元。效率的表达式可以反映一段时间内的平均效率。用于测量平均效率的一种方式是监测延长的时间段内的功率能量,然后将所完成的工作量除以该时间段内消耗的能量。
在某些实施例中,可以监测峰值效率。在一个这样的实施例中,可以以预定间隔(如每1秒、每5秒、每小时、或某种其他间隔)执行框406到410的循环。当标识了最大或最小效率时,可以在框410中存储该最大值或最小值,直到另一个间隔具有超过前面的最大值或最小值的最大值或最小值。
在某些实施例中,框406到410的进程可以被用来生成所执行的工作的时间线和每一个组件消耗的能量。可以通过审阅该时间线来分析这样的实施例以计算最大效率、最小效率、以及平均效率。
可以以不同的方式来计算效率的表达式,并以不同的方式来存储它。在一个示例中,效率的公式或表达式可包括每一被测量的组件的表达式。在另一示例中,效率的单个概要统计数据可以被用来表示由消耗的总能量所执行的工作,其中消耗的总能量是每一个组件所消耗的能量的总和。
图5是示出了用于使用效率来执行工作负荷的方法的实施例500的流程图。实施例500是可以由实施例100的工作负荷管理器150或实施例200的工作负荷管理器204执行的过程的示例。
其他实施例可以使用不同的顺序、更多的或更少的步骤、以及不同的命名法或术语来实现类似的功能。在某些实施例中,各操作或操作集合可以与其他操作平行地以同步或异步方式执行。这里所选择的步骤被选择以便以简化形式示出某些操作原理。
实施例500是如何在工作负荷的操作过程中使用实施例300中所确定的优化系统配置的示例。
在框502中,可以标识工作负荷。在框504中,可以搜索性能数据库,以定位工作负荷的效率信息。可以在框506中标识最优系统配置。可以在框508中配置硬件,并在框510中执行。
在某些情况下,性能数据库可以包含与当工作负荷正在被执行时为完成工作所消耗的功率或能量有关的原始历史信息。可以通过分析历史信息并确定优化的系统配置,来确定框506中确定的最优系统配置。
前面的对主题的描述只是为了说明和描述。它不旨在是详尽的或将发明限于所公开的准确的形式,且根据上述教示,其他修改方案和变化也是可以的。所选择和描述的实施例只是为了最好地说明本发明的原理以及其实际应用,从而使本领域技术人员最佳地在各实施例中和适于所构想的特定用途的各种修改中利用本发明。所附权利要求书被解释为包括其他备选实施例,除非被现有技术限制。

Claims (15)

1.一种方法,包括:
标识要在计算设备上执行的工作负荷(302);
为第一计算设备定义第一硬件配置(304);
在所述第一硬件配置上执行所述工作负荷(310);
在所述执行期间监测至少两个硬件组件的功率消耗(312);以及
生成描述所述第一硬件配置的所述工作负荷的所述功率用量的第一表达式(314),所述第一表达式包括对所述至少两个硬件组件的引用。
2.如权利要求1所述的方法,其特征在于,还包括:
为所述第一计算设备定义第二系统配置;
在所述第二系统配置上执行所述工作负荷;
在所述第二系统配置上的所述执行期间监测所述至少两个硬件组件的功率消耗;
生成描述所述第二系统配置中的所述工作负荷的所述能量用量的第二表达式;
评估所述第一表达式和所述第二表达式以确定高效的系统配置,并在所述高效的系统配置上执行所述工作负荷。
3.如权利要求2所述的方法,其特征在于,所述第一系统配置和所述第二系统配置两者都是所述第一计算设备的不同配置。
4.如权利要求3所述的方法,其特征在于:
所述第一系统配置包括被配置成在第一处理器上操作的第一线程;
所述第二系统配置包括被配置成在第二处理器上操作的所述第一线程。
5.如权利要求4所述的方法,其特征在于,还包括:
当所述工作负荷在运转中时,将所述工作负荷从所述第一系统配置切换到所述第二系统配置;以及
当所述工作负荷在运转中时,将所述工作负荷切换到所述高效的系统配置。
6.如权利要求5所述的方法,其特征在于,所述高效的系统配置包括来自所述第一系统配置的第一硬件组件的配置以及来自所述第二系统配置的第二硬件组件的配置。
7.如权利要求2所述的方法,其特征在于,所述第二系统配置位于第二计算设备上。
8.如权利要求1所述的方法,其特征在于,还包括:
标识基线工作负荷;以及
在所述第一系统配置中在所述第一计算设备上执行所述基线工作负荷。
9.如权利要求1所述的方法,其特征在于,还包括:
基于所述第一表达式来确定操作所述工作负荷的成本。
10.如权利要求9所述的方法,其特征在于,还包括:
标识由所述工作负荷所使用的资源,并基于所述资源中的每一个来分配成本。
11.一种系统,包括:
在第一计算设备上可操作的监测应用程序(148),所述第一计算设备具有在多个硬件组件上的功率用量装备;
被配置成执行包括下列各操作的方法的工作负荷管理器(150):
标识要在所述第一计算设备上执行的工作负荷;
为所述第一计算设备定义第一硬件配置;
在所述第一硬件配置上执行所述工作负荷;
在所述执行期间监测至少两个硬件组件的功率消耗;以及
生成描述所述第一硬件配置的所述工作负荷的所述功率用量的第一表达式,所述第一表达式包括对所述至少两个硬件组件的引用。
12.如权利要求11所述的系统,其特征在于,所述工作负荷管理器在所述第一计算设备上操作。
13.如权利要求11所述的系统,其特征在于,所述工作负荷管理器在第二计算设备上操作。
14.如权利要求12所述的系统,其特征在于,所述工作负荷管理器还被配置成执行包括下列各操作的第二方法:
为第三计算设备定义第二硬件配置;
在所述第二硬件配置上执行所述工作负荷;
在所述第二硬件配置上的所述执行期间监测所述至少两个硬件组件的功率消耗;
生成描述所述第二硬件配置中的所述工作负荷的所述功率用量的第二表达式;
评估所述第一表达式和所述第二表达式以确定高效的硬件配置,并在所述高效的硬件配置上执行所述工作负荷。
15.如权利要求14所述的系统,其特征在于,所述工作负荷是虚拟机。
CN2010800331432A 2009-07-21 2010-07-20 组件功率监测和工作负荷优化 Pending CN102473131A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/506,687 US20110022870A1 (en) 2009-07-21 2009-07-21 Component power monitoring and workload optimization
US12/506,687 2009-07-21
PCT/US2010/042653 WO2011011452A2 (en) 2009-07-21 2010-07-20 Component power monitoring and workload optimization

Publications (1)

Publication Number Publication Date
CN102473131A true CN102473131A (zh) 2012-05-23

Family

ID=43498310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800331432A Pending CN102473131A (zh) 2009-07-21 2010-07-20 组件功率监测和工作负荷优化

Country Status (5)

Country Link
US (1) US20110022870A1 (zh)
EP (1) EP2457163A4 (zh)
JP (1) JP2013500515A (zh)
CN (1) CN102473131A (zh)
WO (1) WO2011011452A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104903813A (zh) * 2012-12-31 2015-09-09 桉树系统公司 用于计算中心中的预测性功率管理的系统和方法
CN105247480A (zh) * 2013-06-28 2016-01-13 英特尔公司 跨独立应用商店的网络应用的兼容及优化
CN108139942A (zh) * 2015-09-30 2018-06-08 华为技术有限公司 数据中心端到端功率效率建模的方法
CN108279934A (zh) * 2018-02-28 2018-07-13 郑州云海信息技术有限公司 服务器bios性能参数设置方法、装置及存储介质
CN110786053A (zh) * 2017-06-19 2020-02-11 T移动美国公司 测试电子设备功率消耗的系统和方法

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100318827A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Energy use profiling for workload transfer
US8452991B2 (en) 2009-08-20 2013-05-28 International Business Machines Corporation Partition level power management using fully asynchronous cores with software that has limited asynchronous support
GB2473194A (en) * 2009-09-02 2011-03-09 1E Ltd Monitoring the performance of a computer based on the value of a net useful activity metric
US8543857B2 (en) * 2009-09-26 2013-09-24 Intel Corporation Method and apparatus for low power operation of multi-core processors
US8868944B2 (en) * 2010-04-06 2014-10-21 Ati Technologies Ulc Computing center power and cooling control apparatus and method
US8892740B2 (en) * 2010-09-10 2014-11-18 International Business Machines Corporation Dynamic application provisioning in cloud computing environments
US8719561B2 (en) 2010-11-29 2014-05-06 International Business Machines Corporation Automatic configuration sampling for managing configuration parameters of a computer system
WO2012102727A1 (en) * 2011-01-28 2012-08-02 Hewlett-Packard Development Company, L. P. Distributing information
US8612785B2 (en) 2011-05-13 2013-12-17 International Business Machines Corporation Optimizing energy consumption utilized for workload processing in a networked computing environment
US9229786B2 (en) * 2011-10-25 2016-01-05 International Business Machines Corporation Provisioning aggregate computational workloads and air conditioning unit configurations to optimize utility of air conditioning units and processing resources within a data center
WO2013132741A1 (ja) * 2012-03-06 2013-09-12 パナソニック株式会社 マルチプロセッサシステム
US9311119B2 (en) * 2012-05-30 2016-04-12 Red Hat, Inc. Reconfiguring virtual machines
US9292060B1 (en) * 2012-06-28 2016-03-22 Amazon Technologies, Inc. Allowing clients to limited control on power consumed by the cloud while executing the client's tasks
US9477287B1 (en) * 2012-06-28 2016-10-25 Amazon Technologies, Inc. Optimizing computing resources
US9348391B1 (en) * 2012-06-28 2016-05-24 Amazon Technologies, Inc. Managing resource power states in shared environments
US20130085882A1 (en) * 2012-09-18 2013-04-04 Concurix Corporation Offline Optimization of Computer Software
US9547353B1 (en) 2012-09-19 2017-01-17 Amazon Technologies, Inc. Processor energy monitoring and dynamic adjustment
US9459685B1 (en) 2012-12-10 2016-10-04 Arizona Board Of Regents On Behalf Of Northern Arizona University System and methods for optimizing energy efficiency in programmable devices
US9196384B2 (en) 2012-12-28 2015-11-24 Intel Corporation Memory subsystem performance based on in-system weak bit detection
US9152467B2 (en) * 2013-01-18 2015-10-06 Nec Laboratories America, Inc. Method for simultaneous scheduling of processes and offloading computation on many-core coprocessors
US9536626B2 (en) * 2013-02-08 2017-01-03 Intel Corporation Memory subsystem I/O performance based on in-system empirical testing
US9274585B2 (en) * 2013-06-13 2016-03-01 Advanced Micro Devices, Inc. Combined dynamic and static power and performance optimization on data centers
US9477277B2 (en) 2013-06-17 2016-10-25 Globalfoundries Inc. Varying power load conditions on systems under test
US9374004B2 (en) 2013-06-28 2016-06-21 Intel Corporation I/O driver transmit swing control
US9940167B2 (en) 2014-05-20 2018-04-10 Red Hat Israel, Ltd. Identifying memory devices for swapping virtual machine memory pages
US9705923B2 (en) 2014-09-02 2017-07-11 Symantec Corporation Method and apparatus for automating security provisioning of workloads
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
US10073880B2 (en) 2015-08-06 2018-09-11 International Business Machines Corporation Vertical tuning of distributed analytics clusters
KR20170047468A (ko) 2015-10-22 2017-05-08 삼성전자주식회사 메모리 동작을 모니터링하는 메모리 모듈 및 그것의 전력 관리 방법
US10394616B2 (en) * 2015-10-29 2019-08-27 International Business Machines Corporation Efficient application management
GB2544530A (en) * 2015-11-20 2017-05-24 Pontus Networks 1 Ltd Fuzzy Caching mechanism for thread execution layouts
US11803926B2 (en) 2015-12-10 2023-10-31 Kyndryl, Inc. Workload distribution optimizer
WO2017147131A1 (en) * 2016-02-22 2017-08-31 The Joan and Irwin Jacobs Technion-Cornell Institute Techniques for self-tuning of computing systems
US20170249996A1 (en) * 2016-02-26 2017-08-31 Microsoft Technology Licensing, Llc Opportunistic memory tuning for dynamic workloads
US10437313B2 (en) * 2016-06-10 2019-10-08 Apple Inc. Processor unit efficiency control
US10067785B1 (en) * 2016-06-29 2018-09-04 Amazon Technologies, Inc. Event driven virtual machine instance pool balancing
GB2552034A (en) * 2016-07-08 2018-01-10 Fujitsu Ltd System, controller, method, and program for executing simulation jobs
JP6953800B2 (ja) 2016-07-08 2021-10-27 富士通株式会社 シミュレーションジョブを実行するためのシステム、コントローラ、方法、及びプログラム
US10402227B1 (en) * 2016-08-31 2019-09-03 Amazon Technologies, Inc. Task-level optimization with compute environments
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10417054B2 (en) 2017-06-04 2019-09-17 Apple Inc. Scheduler for AMP architecture with closed loop performance controller
US10831252B2 (en) * 2017-07-25 2020-11-10 International Business Machines Corporation Power efficiency-aware node component assembly
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
US11280937B2 (en) 2017-12-10 2022-03-22 Magic Leap, Inc. Anti-reflective coatings on optical waveguides
WO2019126331A1 (en) 2017-12-20 2019-06-27 Magic Leap, Inc. Insert for augmented reality viewing device
US10708142B2 (en) 2018-01-24 2020-07-07 Keysight Technologies, Inc. Methods, systems, and computer readable media for providing cloud visibility
WO2019178567A1 (en) 2018-03-15 2019-09-19 Magic Leap, Inc. Image correction due to deformation of components of a viewing device
US10789247B2 (en) * 2018-05-22 2020-09-29 Microsoft Technology Licensing, Llc Tune resource setting levels for query execution
WO2019231850A1 (en) 2018-05-31 2019-12-05 Magic Leap, Inc. Radar head pose localization
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
US11510027B2 (en) 2018-07-03 2022-11-22 Magic Leap, Inc. Systems and methods for virtual and augmented reality
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
JP7426982B2 (ja) 2018-07-24 2024-02-02 マジック リープ, インコーポレイテッド 移動検出デバイスの温度依存較正
EP3831058A4 (en) 2018-08-02 2022-04-20 Magic Leap, Inc. VIEWING SYSTEM WITH PUPILE DISTANCE COMPENSATION BASED ON HEAD MOVEMENT
CN112789544B (zh) 2018-08-03 2023-06-30 奇跃公司 图腾在用户交互系统中的融合姿势的基于未融合姿势的漂移校正
CN111124656B (zh) * 2018-10-31 2023-09-15 伊姆西Ip控股有限责任公司 用于向专用计算资源分配任务的方法、设备和计算机可读存储介质
CN117111304A (zh) 2018-11-16 2023-11-24 奇跃公司 用于保持图像清晰度的图像尺寸触发的澄清
WO2020163603A1 (en) * 2019-02-06 2020-08-13 Magic Leap, Inc. Target intent-based clock speed determination and adjustment to limit total heat generated by multiple processors
CN113544766A (zh) 2019-03-12 2021-10-22 奇跃公司 在第一和第二增强现实观看器之间配准本地内容
WO2020223636A1 (en) 2019-05-01 2020-11-05 Magic Leap, Inc. Content provisioning system and method
US11126245B2 (en) * 2019-06-21 2021-09-21 Intel Corporation Device, system and method to determine a power mode of a system-on-chip
US11514673B2 (en) 2019-07-26 2022-11-29 Magic Leap, Inc. Systems and methods for augmented reality
JP2023502927A (ja) 2019-11-15 2023-01-26 マジック リープ, インコーポレイテッド 外科手術環境において使用するための視認システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US20040215987A1 (en) * 2003-04-25 2004-10-28 Keith Farkas Dynamically selecting processor cores for overall power efficiency
US20070071032A1 (en) * 2004-01-28 2007-03-29 Rambu Inc. Adaptive-allocation of i/o bandwidth using a configurable interconnect topology
CN101076770A (zh) * 2004-09-28 2007-11-21 英特尔公司 根据可用并行数目改变每条指令能量的方法和设备
CN101256515A (zh) * 2008-03-11 2008-09-03 浙江大学 多核处理器操作系统负载均衡的实现方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09138716A (ja) * 1995-11-14 1997-05-27 Toshiba Corp 電子計算機
US6785826B1 (en) * 1996-07-17 2004-08-31 International Business Machines Corporation Self power audit and control circuitry for microprocessor functional units
JP2001142579A (ja) * 1999-11-16 2001-05-25 Fujitsu Ltd 電源制御装置およびそれを備えた情報処理装置、記録媒体
US6944798B2 (en) * 2000-05-11 2005-09-13 Quest Software, Inc. Graceful degradation system
US8037445B2 (en) * 2003-08-20 2011-10-11 Hewlett-Packard Development Company, L.P. System for and method of controlling a VLSI environment
US7287173B2 (en) * 2003-12-19 2007-10-23 Intel Corporation Method for computing power consumption levels of instruction and recompiling the program to reduce the excess power consumption
US7203854B2 (en) * 2004-02-12 2007-04-10 Microsoft Corporation System for reconfiguring a computer between a high power and high functionality configuration and a low power and low functionality configuration
JP4579979B2 (ja) * 2004-06-21 2010-11-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電力管理
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
JP4476876B2 (ja) * 2005-06-10 2010-06-09 三菱電機株式会社 並列計算装置
US7197411B1 (en) * 2005-08-02 2007-03-27 Sun Microsystems, Inc. Real-time power harness
US20070245163A1 (en) * 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7861102B1 (en) * 2007-04-30 2010-12-28 Hewlett-Packard Development Company, L.P. Unified power management architecture
JP5067425B2 (ja) * 2007-09-21 2012-11-07 富士通株式会社 翻訳装置と翻訳方法および翻訳プログラムとプロセッサコアの制御方法およびプロセッサ
US8555283B2 (en) * 2007-10-12 2013-10-08 Oracle America, Inc. Temperature-aware and energy-aware scheduling in a computer system
US8127032B2 (en) * 2007-10-18 2012-02-28 International Business Machines Corporation Performance sampling in distributed systems
US20090106571A1 (en) * 2007-10-21 2009-04-23 Anthony Low Systems and Methods to Adaptively Load Balance User Sessions to Reduce Energy Consumption
US8041521B2 (en) * 2007-11-28 2011-10-18 International Business Machines Corporation Estimating power consumption of computing components configured in a computing system
US7979729B2 (en) * 2007-11-29 2011-07-12 International Business Machines Corporation Method for equalizing performance of computing components
US8024284B2 (en) * 2007-12-10 2011-09-20 Oracle America, Inc. Accurately inferring physical variable values associated with operation of a computer system
US7962770B2 (en) * 2007-12-19 2011-06-14 International Business Machines Corporation Dynamic processor reconfiguration for low power without reducing performance based on workload execution characteristics
US8176342B2 (en) * 2008-04-24 2012-05-08 Oracle America, Inc. Real-time inference of power efficiency metrics for a computer system
US8458722B2 (en) * 2008-06-09 2013-06-04 International Business Machines Corporation Thread selection according to predefined power characteristics during context switching on compute nodes
US9032223B2 (en) * 2008-09-05 2015-05-12 Intel Corporation Techniques to manage operational parameters for a processor
US8195962B2 (en) * 2008-11-11 2012-06-05 Globalfoundries Inc. Method and apparatus for regulating power consumption
US8122269B2 (en) * 2009-01-07 2012-02-21 International Business Machines Corporation Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores
US8214663B2 (en) * 2009-04-15 2012-07-03 International Business Machines Corporation Using power proxies combined with on-chip actuators to meet a defined power target

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US20040215987A1 (en) * 2003-04-25 2004-10-28 Keith Farkas Dynamically selecting processor cores for overall power efficiency
US20070071032A1 (en) * 2004-01-28 2007-03-29 Rambu Inc. Adaptive-allocation of i/o bandwidth using a configurable interconnect topology
CN101076770A (zh) * 2004-09-28 2007-11-21 英特尔公司 根据可用并行数目改变每条指令能量的方法和设备
CN101256515A (zh) * 2008-03-11 2008-09-03 浙江大学 多核处理器操作系统负载均衡的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIAN LI等: "《Dynamic Power-Performance Adaptation of Parallel Computation on Chip Multiprocessors》", 《HIGH-PERFORMANCE COMPUTER ARCHITECTURE, 2006. THE TWELFTH INTERNATIONAL SYMPOSIUM ON》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104903813A (zh) * 2012-12-31 2015-09-09 桉树系统公司 用于计算中心中的预测性功率管理的系统和方法
CN104903813B (zh) * 2012-12-31 2017-09-01 慧与发展有限责任合伙企业 用于计算中心中的预测性功率管理的系统和方法
CN105247480A (zh) * 2013-06-28 2016-01-13 英特尔公司 跨独立应用商店的网络应用的兼容及优化
CN105247480B (zh) * 2013-06-28 2020-03-06 英特尔公司 跨独立应用商店的网络应用的兼容及优化
CN108139942A (zh) * 2015-09-30 2018-06-08 华为技术有限公司 数据中心端到端功率效率建模的方法
CN110786053A (zh) * 2017-06-19 2020-02-11 T移动美国公司 测试电子设备功率消耗的系统和方法
CN108279934A (zh) * 2018-02-28 2018-07-13 郑州云海信息技术有限公司 服务器bios性能参数设置方法、装置及存储介质

Also Published As

Publication number Publication date
EP2457163A4 (en) 2015-09-09
WO2011011452A2 (en) 2011-01-27
JP2013500515A (ja) 2013-01-07
EP2457163A2 (en) 2012-05-30
WO2011011452A3 (en) 2011-04-28
US20110022870A1 (en) 2011-01-27

Similar Documents

Publication Publication Date Title
CN102473131A (zh) 组件功率监测和工作负荷优化
US9501124B2 (en) Virtual machine placement based on power calculations
EP2981890B1 (en) Dynamic program evaluation for system adaptation
US9749207B2 (en) Methods for measuring physical CPU utilization in a cloud computing infrastructure
KR101578189B1 (ko) 클라우드 컴퓨팅 서비스를 제공하는 관리 서버 및 방법
US8954487B2 (en) Management server and method for providing cloud computing service
US20090007128A1 (en) method and system for orchestrating system resources with energy consumption monitoring
Townend et al. Improving data center efficiency through holistic scheduling in kubernetes
US20130219068A1 (en) Predicting datacenter performance to improve provisioning
US8615764B2 (en) Dynamic system scheduling
US8386810B2 (en) Determination of software module power consumption by analyzing total system power consumption of operational hardware events at plural times
CN104335137A (zh) 管理计算系统的功耗和性能
Bertran et al. Counter-based power modeling methods: Top-down vs. bottom-up
Grosskop et al. Identification of application-level energy optimizations
KR20120036209A (ko) 컴퓨팅 시스템에서 부트 이미지의 크기를 최적화하는 부팅이미지 생성방법
CN103649938A (zh) 在多处理计算机系统中管理工作负荷
Wolski et al. QPRED: Using quantile predictions to improve power usage for private clouds
Lent Analysis of an energy proportional data center
US20210248056A1 (en) Method for evaluating application deployment, apparatus, computer program product, and readable medium
Willnecker et al. Model-based Energy Consumption Prediction for Mobile Applications.
Götz Towards energy auto tuning
US20220011843A1 (en) Software entity power consumption estimation and monitoring
Unni et al. An intelligent energy optimization approach for MPI based applications in HPC systems
US11740674B2 (en) Systems and methods for reducing stranded power capacity
Tudor et al. Designing a power efficiency framework for battery powered systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120523

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150727

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.