CN110178100A - 进程级活动标记 - Google Patents
进程级活动标记 Download PDFInfo
- Publication number
- CN110178100A CN110178100A CN201780082779.8A CN201780082779A CN110178100A CN 110178100 A CN110178100 A CN 110178100A CN 201780082779 A CN201780082779 A CN 201780082779A CN 110178100 A CN110178100 A CN 110178100A
- Authority
- CN
- China
- Prior art keywords
- energy
- label
- estimation
- tag request
- hardware
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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/3062—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3096—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy 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)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Power Sources (AREA)
Abstract
实施例涉及使得软件与功耗遥测系统对接。进程可能具有与能量估计引擎对接的标记指令。当能量估计引擎记录进程的能耗时,进程还可以标注、标记或以其他方式描述进程执行时期间的处理时段。进程的逻辑可以确定这些时段应该如何被标记,以及它们何时开始和结束。已标记的时段与进程所消耗的能量关联,使得可以了解进程在不同的能耗时段所做的工作的细节。
Description
背景技术
计算设备消耗能量以运行。诸如处理器、显示器、总线、网络接口、存储装置等计算设备的部件全都消耗能量。通常,理想的是将计算设备所需的能量的数量最小化,例如以延长电池寿命或减少服务器场消耗的大量的能量的数量。在计算设备上执行的软件在很大程度上决定了多少能量将被消耗。构建软件单元所做的许多设计和工程选择可以显著地影响任何给定时刻所需的功率量。虽然效率通常总是有助于降低能耗,但是很难预测特定的设计和编码选择可能如何影响功率需求。例如,应用的能耗极大地依赖于应用如何被使用、哪些特殊的硬件部件被使用、正在执行哪些其他软件,等等。当扩展到执行相同软件的大量设备时,这些变量会被放大。个体设备的建模和研究具有限制。关于功率使用的生产反馈可以变得有用。
很少有工具可以帮助软件开发人员了解在软件被不同的用户部署以用于生产时能量是如何消耗的,也很少有工具为大量设备提供关于系统能耗的信息。提供生产反馈的一些工具仅仅提供了每个应用的能耗信息。其他工具提供了关于多少能量被不同类型的工作消耗的系统级信息。提供关于应用能耗的代码级信息的工具已经被设计出。然而,这些工具依赖于代码分析和能量建模以预测能耗特性。这样的工具不适合生产环境,并且不能提供有关软件如何在生产设备中消耗能量的详细信息。此外,没有能量分析工具使得应用的逻辑任意决定如何以及何时测量能耗。能耗分析以对正在被建模或测量的软件透明的方式被建模和测量。
以下描述的技术涉及使得软件开发人员自定义在应用正在执行时如何以及何时测量能耗。
发明内容
以下发明内容仅仅为了介绍以下具体实施方式所讨论的一些概念。本发明内容不够全面,也不旨在用于说明权利要求主题的范围,范围由最后呈现的权利要求来阐述。
实施例涉及使得软件与功耗遥测系统对接。一个进程可能具有与能量估计引擎对接的标记指令。当能量估计引擎记录进程的能耗时,进程还可以标注、标记或以其他方式描述进程在执行时期间的处理时段。进程的逻辑可以确定这些时段应该如何被标记,以及它们何时开始和结束。已标记的时段与进程所消耗的能量关联,因此可以了解进程在不同的能耗时段期间所做的细节。
许多附加特征将在下面参照以下的详细描述与关联的附图一并考虑而被解释。
附图说明
根据附图阅读以下详细描述可以更好地理解本说明,其中附图中使用类似的参考数字被用于指代伴随说明书中的类似部分。
图1示出了被配置为测量和报告能耗信息的计算设备。
图2示出了能量估计引擎的细节。
图3示出了高速缓存的示例。
图4示出了表示被存储在数据库中的三个进程在一段时间内的估计能耗的图。
图5示出了能量估计引擎的实施例,该引擎使得进程使用关于进程在任何时间点正在做什么的任意信息来注释其能耗数据。
图6示出了进程(左侧)和能量估计引擎(右侧)之间的交互。
图7示出了计数器和能量数据的另一个示例。
图8示出了表示标记的进程的图。
图9示出了可在其上实现实施例的计算设备的细节。
具体实施方式
图1示出了被配置为测量和报告关于能耗的信息的计算设备100。计算设备100可以有一个或多个硬件部件102,诸如中央处理器(CPU)、图形处理单元(GPU)、显示器、总线、网络接口和其他类型的众所周知的计算硬件。计算设备100还具有用于协调硬件使用的操作系统104。操作系统104可以是按照本文描述的方式修改或增强的任何类型的已知操作系统。与大多数操作系统一样,操作系统104包含进程管理器106。进程管理器106执行典型的进程管理任务,诸如在进程创建、进程终止、跟踪和管理进程状态、协调进程的执行以及为这些任务管理进程表,等等。
操作系统104还包括一个能量估计引擎108。能量估计引擎108接收来自进程管理器106和可选的来自硬件部件102的功率信息。能量估计引擎108使用功率信息以规律时间间隔估计总能耗,由硬件设备、进程、应用或其他部件估计能耗故障。能量估计被记录到110数据库。
遥测客户端112经由网络114周期性地将数据库110传输给聚合服务114。聚合服务114是一种网络服务,它还接收来自执行能量估计引擎的其他计算设备100的能量遥测数据。遥测客户端112和聚合服务114可以被实现为使用已知的遥测技术或系统,但需要修改以报告能耗数据。聚合服务114将来自计算设备100的能量遥测数据组合成全局数据集。全局数据集中的组合能量遥测数据可以被查询。优选地,依赖于可用的详细程度和敏感信息是否可访问,应用开发人员最好只能访问与该开发人员的软件相关的聚合能量数据。
能量估计引擎108可以以多种方式被实现。例如,能量估计引擎108可以作为带有内核模式和用户模式部件的后台进程而运行。在任何情况下,能量估计引擎108应该能够估计和记录每个进程在时间增量上消耗了多少能量。也就是说,功率使用是在每个进程的基础上随时间估计和存储。其他功率估计也可以被计算,例如每个硬件部件、根据显示器是打开还是关闭所消耗的能量、由硬件部件分解的进程所消耗的能量等等。
如所记录的,如何估计能耗并不重要。在一个实施例中,能量估计引擎实现了能量供应和消耗的数学模型。该模型可以将由一个或多个硬件部件测量的或来自一个或多个硬件部件的功率数据作为输入。在一个实施例中,功率测量在短时间间隔内连续采样。功率采样可以包括由一个或多个功率源(例如电池、插入线、太阳能元件等)提供的功率和由每个硬件部件吸取的功率。模型可能有默认的参数,其可以通过硬件供应商、芯片制造商等的设备简档进行调整。如所记录的,功率测量可以周期性地被快照或被采样。通过该数学模型可将功率测量方法结合起来,以估计不同时段的能耗。总之,能耗引擎随时间并且以变化的细节水平来计算能耗。
在一个实施例中,仅仅(或至少)捕获CPU相关的功率数据,并用于估计能耗。在每个样例点/间隔上,进程管理器104可以标识分配给哪个进程的CPU工作的比例(例如,周期)。该信息稍后可能与CPU能耗的估计相结合,以估计每个进程随时间已经使用了多少能量。为了估计某一时刻(例如最近的采样时间)的总(和/或CPU)能耗,数学能量模型可能需要一系列最近的功率样本(CPU和/或其他硬件部件)。因此,对每个进程能耗的估计可能滞后于最近的功率测量。为了解释这种滞后,数学模型可以用它自己的内部单位——能量计数器——来表示所提供和消耗的比例功率。比例功率可以从一个采样时段变化到另一个采样时段。在采样时,以表示在一段时间内的比例功率的令牌或计数器的形式计算各个元素(进程、一些硬件部件等)的临时比例功率估计值。一些硬件部件可以直接计算能量。当一个样本时段的总能量估计可用时,每个受监视元素(进程、硬件部件等)的能量可以以其先前估计的比率以能量计数器的形式被容易计算。这种技术通过允许间歇性地进行能量估计,减少了能量估计的计算负载,将在以下进一步解释。
虽然在图1中显示为单个单元,但是能量估计引擎108可以用任何类型的架构和部件分解来实现。例如,可以存在促进进程间通信的元件,诸如远程进程调用(RPC)客户端和/或服务器,用于采样功率/负载数据(例如,从驱动程序和进程管理器106)的内核模块以及用于实现能量估计的数学模型的用户模式后台进程,消耗功率采样和能量计数器,并输出能量数据到数据库110中。通常,本文所描述的技术可以用于任何能够估计每个进程使用了多少能量和/或功率的系统。
图2示出了能量估计引擎108的细节。能量估计引擎具有采样进程120,采样进程120在诸如每分钟的规律间隔对功率数据进行采样。在每个采样间隔,采样进程120获取功率样本,并为被监视的任何元件(例如,个体进程、硬件部件等)计算能量计数器。能量估计以增量值序列的形式存储在高速缓存122中。能量估计进程124以更大的间隔消耗高速缓存122,例如每小时。能量估计进程124分别计算缓存122中各个间隔的总能量值(例如,系统、硬件部件)。每个元件在每个间隔的按比例的能耗是根据间隔的总能量而计算的。能量数据被存储到数据库110中。
如上所述,能耗可以通过多种方式被分解和关联。每个进程的能量可以被估计。进程可以通过其进程ID和时间戳唯一地被标识。这个唯一ID的散列可以用作高速缓存122和数据库110中的数据的索引。如果跟踪进程的其他属性,诸如映像名、包名等,那么可以跟踪多个详细级别的丰富的能量统计集信息。然而,要在比进程级别更细的粒度上跟踪能耗,需要使用其他技术,参见图5所描述的。
图3示出了高速缓存122的示例。高速缓存122表示为一个表,然而,任何数据结构或数据结构的组合都可以用来根据唯一进程ID来索引能量估计计数器138。例如,高速缓存122可以实现为指向树的指针的散列表。如上所提及的,能量计数器表示成比例的能耗。因此,在每个样本时间142,计数器的和应该是相同的;在图3的示例中,总和是10。在其他实施例中,每个时段的计数器总数可能不同(与CPU负载相对应),即使它们表示的每个计数器的功率也发生变化。在t1时刻,只有进程p1在执行,并且前一个时间间隔的所有CPU能量都分配给了进程p1。在t2时刻,进程p2和p3已经启动,CPU负载按比例分布在进程p1、p2和p3之间,分别为20%、70%和10%。随着时间的推移,一些进程结束,另一些进程被创建。
当能量估计间隔结束时,能量估计进程124计算每个采样区间(t1、t2、…)的每个进程的能耗值,例如以毫焦耳(mJ)为单位。例如,如果t4时刻总计为500mJ,则记录进程p1、p2、p3和p4分别消耗了200mJ、200mJ、0mJ和100mJ。图4示出了表示存储在数据库110中的三个进程在一段时间内的估计能耗的图160。进程在任意给定时间点的值的总和是变化的,并且是处理器和/或计算设备消耗的总能量(取决于实现)。
如上所述,能量估计引擎108以对进程透明的方式计算以每个进程为基础的能耗运行估计。任何任意进程的能量使用可在不需要该进程任何特别行动的情况下被估计;应用源代码和/或可执行代码不需要修改或专门检测以估计能耗。任意进程的能耗都是可以估计的。然而,有些进程可能运行很长时段,执行许多不同的任务,并处理不同类型的信息。进程的内部逻辑和行为可能与进程的功耗有显著的相关性。进程的一些任务可能比其他任务需要更多的功率,而一些信息可能比其他信息需要更多的能量来处理。
例如,如果一个进程是web浏览器应用的加载的可执行代码,那么浏览器如何能耗可能会因从一个网页到另一个网页而有很大变化。例如,如果进程是音频呈现程序,那么应用哪些音频效果可能会因从一个音频流到下一个而有所不同。进程的任何可变行为或数据都可能对理解能耗具有重要意义。然而,在此之前,无法了解进程正在做什么,或者在它消耗能量时正在处理什么信息。也就是说,不可能以灵活的进程控制方式将内部进程状态和进程的行为与进程的能耗关联起来。
图5示出了能量估计引擎108的实施例,能量估计引擎108使得进程170使用关于进程在任何时间点正在做什么的任何任意信息来注释能耗数据。从概念上讲,如果能量估计引擎108将进程随时间的能耗进行估计,那么进程可以在不同的时间点对该信息标记。该标记与能量数据一起存储,并传输到聚合服务116。然后,标记数据可以提供每个标签对进程和应用净能耗的分解。
为了使得应用标记,可以向能量估计引擎108提供接口172,通过接口170进程可以提交标记请求174。能量估计引擎108还有一个标记部件176,用于处理标记请求174。如将被描述的,高速缓存122、能量数据库110和聚合服务114都被修改以处理标记数据。标记部件接收传入的标记请求并将其存储在缓存122中。
图6示出了进程170(左侧)和能量估计引擎108(右侧)之间的交互。最初,能量估计引擎108正在执行,包括生成每个进程的能量使用估计日志。在步骤190,进程170开始执行。在随后的第一采样周期(步骤192)中,采样进程120检测新进程170,为进程170添加新的高速缓存条目,并针对最近的采样周期为进程插入能量计数器。新的缓存条目可以通过进程的进程ID的散列进行索引,散列与关联于进程的时间戳或其他准随机数据连接在一起,这些数据与进程ID结合在一起形成唯一标识符(考虑到进程ID可能被回收)。在实践中,引擎可以将每个采样时段的能量计算为前一个周期的增量。新进程将继续被采样,引擎将继续周期性地估计其比例能量,而不考虑任何标记。为了了解进程的能量行为,可以在随后计算和分析进程中标记的各个阶段的能耗与进程总能量使用的比率。此外,标记执行阶段的估计能耗可以单独地、聚合地或结合能量使用数据的其他方面(例如,包、硬件部件等)被查看。实际上,标签为进程提供了一种方法来标注它们执行的时段,以便与进程的功率使用信息进行后续关联。
回到图6,在步骤194,进程通过接口172向引擎发出标记请求。接口可以是由引擎、RPC客户机/服务器或任何其他形式的IPC公开的应用编程接口(API)。调用可以由共享/链接库实现。进程或引擎之一请求引擎的内核模式部件,以获取标记请求时刻进程的当前能量计数器,该计数器存储在高速缓存中。在步骤196,引擎的标记部件176将标签、能量计数器和任何相关数据记录到高速缓存中,以便后续并入数据库110。相关数据可能包括标签的时间戳、进程的映像名或任何其他可能对标识进程有用的信息。相关数据可能包括从进程中传递并与记录的标签一起存储的其他信息(除了标签和计数器)。例如,对接口的调用可以设计为允许将数据结构从进程传递到引擎。数据结构可以被填充有进程所需的任何任意信息,例如类标识符或标签参数。
标签值可以是任意数据片段,也可以存储在字符串中。标签值由进程决定,可能取决于进程的运行时数据或逻辑。标记/调用请求在源代码(以及相应的编译代码)中的位置可能由为编写进程的源代码的开发人员来确定。任何任意进程都可以在任何时间使用进程选择的任何任意值做出标记请求。总之,标记是进程逻辑和代码的一部分。
在再次提交标签或提交新标签之前,将认为标签继续有效。如图6所示,在步骤198,进程向引擎提交第二标签。该进程或引擎采样该进程的当前能量计数器。在步骤200,标记部件176记录第二标签、采样的能量计数器和任何相关数据。如果第一标签没有显式地被进程终止,则第二标签作为第一标签的终止。在步骤202,进程结束,高速缓存相应地更新。进程在高速缓存中的条目滚出,并且缺少在高速缓存中的进程键表示进程在步骤204处结束。可以看到如果进程没有发出任何标记请求,那么它的启动、停止和能耗仍然会被估计,尽管没有任何标记。
对于提交标签时进程的能量计数器的采样,该采样函数作为最后一个周期性(例如,每60秒)采样周期中计算的最后采样的偏移。这允许进程的后续周期的计数器采样,以从进程的偏移和进程的后续周期计数器样本被计算。当一个标签被关闭时,另一个能量计数器样本被取走。从以标记时段的开始到结束之间的偏移量和周期性样本可以确定标记的时段跨度的总能量。这种技术有助于保持低标记开销,因为只需要再取一两个样本。
考虑以下示例。假设进程是web浏览器。此外,假设浏览器为浏览器访问的每个新页面提交标签。例如,这将允许浏览器开发人员查看收集的能量数据,并查看哪些页面消耗了多少能量。
在时刻-0(0秒)时,浏览器进程启动,并将其启动记录到缓存中。
在时刻-5(进程启动后5秒),浏览器打开一个域“msn.com”的页面。浏览器对其能量计数器(10)进行采样,然后浏览器向引擎报告(标签=“msn.com”、计数器=10),引擎将该计数器连同请求的时间和任何附加信息一起记录到高速缓存中。
在时刻-30(进程启动后30秒),浏览器开始代表另一域工作,例如“cnn.com”。该进程的能量计数器再次采样,其为100。浏览器进程向引擎报告(标签=“cnn.com”,计数器=100),引擎将标签和计数器与浏览器进程关联地记录到高速缓存中。此外,对于第一标签的终止,引擎记录(“msn.com”,100-10);100-10,或90,这是从“msn.com”被记录到“msn.com”结束期间进程的总能量计数。
在时刻-60(60秒)时,采样进程120执行其周期性任务。所有进程的计数器都被采样并与各自进程的散列/标识符关联存储在缓存中。浏览器进程的采样计数器为500,引擎为浏览器进程记录(标签=“cnn.com”,计数器=500-100);500-100或400,这是从“cnn.com”标签开始到时刻-60的整个进程的能量计数。
在时刻-90(90秒)时,浏览器代表域“xyz.com”开始工作。浏览器进程的能量计数器采样为550。进程报告(标签=“xyz.com”,计数器=550-500)或50,这是进程从时刻-60到“xyz.com”标记时的能量计数。
此时,高速缓存至少包含以下标签和计数器信息:msn.com=90,cnn.com=400+50=450。“xyz.com”标签仍然是开放的。当调用能量估计进程124时,计数器将转换为实际的能量估计。
如上所提及的,对于CPU等部件,或者其他部件(例如网络接口),能量计数器是能耗的临时代理。例如,与进程关联的计数器可以表示CPU周期,或者其他CPU工作的度量,用于所执行指令的权重。当能量估计进程124在经过一个估计时段(例如,60分钟)后开始占空比时,能量估计引擎将代理计数器转换为实际的能量数。一个给定部件(例如CPU)的全局/总能量计数器指示一个能量计数器表示该能量估计周期的能量。给定每个进程的能量计数器,计算每个标签的能量是一个简单的进程。
引擎在估计时段结束时要做的另一件事是确定是否有任何开放标签;这些标签将被关闭,然后使用不同的能量计数器再次开放。图7示出了计数器和能量数据的另一个示例。在不同的时刻,对应的进程向能量估计引擎108提交标签。能量估计引擎将标签和进程的能量计数器样本存储在缓存122中。在图7中,进程具有第一样本周期的能量计数100以及第二个样本周期的能量计数200。当转换为实际能量时,各个时段分别具有能量324mJ和598mJ。类似地,标签具有采样计数器,这些计数器在能量估计阶段转换为实际的能量值。图8示出了表示标记的进程的图示230。阴影区域表示已标记的进程时段。
应该认识到,可以使用不同的技术来记录能耗和标记进程。以上许多细节都是为了最小化开销而设计的。如果使用不同的能量估计技术(例如,专门的能量采样硬件),可以使用直接的能量采样,而不需要代理计数器。如果能立即计算能量使用情况,例如,如果使用不同的或更简单的模型(例如,仅CPU),那么记录能量的细节可能会有所不同。无论使用何种透明的能量记录系统,其目标都是允许进程绑定到该系统中,并用自身信息自注释其能量使用日志。捕获的细节级别可以根据开销和其他需求或限制进行更改。例如,可以只统计总数和持续时间,并且可以通过合并忽略或移除进程和标签的启动和停止时间。
对特殊情况的描述被省略,但是很容易看出如何处理这些情况。例如,应该考虑意外终止的进程、具有相同映像名称但不同映像的进程以及其他潜在条件。线程标记可以使用以上概述的相同技术实现,但可能依赖于特定平台而有所不同。例如,线程可能不会被自动记录,相反可能需要通过估计引擎“选择”记录。
本文描述的实施例可被认为适用于任何类型的执行单元,由操作系统管理的应用包、进程、线程或其他执行单元。在一个实施例中,进程包括可执行指令,其包括用于发出标记请求的可执行代码(标签请求指令)。标签请求指令与源代码相对应,源代码包括指定标签请求的系统调用、方法等,包括参数,诸如将标签值传递给能量估计引擎的标签参数。也就是说,标记请求指令是由具有源代码标签请求语句(系统调用、API调用、方法调用等)的源代码编译的。源代码可能是生产风格的代码,不包含用于估计能量的其他代码。类似地,存储在计算设备持久介质上的编译的映像不需要进行仪器化或修改,以包含用于估计能量的额外指令或开销。对开发人员来说,在源代码中包含适当的标记调用/语句是标记能量估计所必需的。开发人员可以选择在代码中的何处进行标记,以及可能的参数,如标签值/标记、信息参数等。源代码以普通方式被编译,不需要插入特殊的检测代码/指令或其他开销。标记和能量估计可以被实现于具有微小开销的生产环境中。
还可以使用其他技术来降低日志记录和标记开销。例如,由于已经执行的进程数量可能非常多,因此如果每个进程的数据都被存储,高速缓存可能会变得非常大。高速缓存和或数据库中的条目可以按总能量排序,只保留N个最消耗能量的进程。可能需要进行调整以避免长时间运行的低能耗进程从视野中消失。
图9示出了可在其上实现上述实施例的计算设备100的细节。本文的技术公开将足以让程序员编写软件,和/或配置可重新配置的处理硬件(例如,现场可编程门阵列(FPGA)),和/或设计专用集成电路(ASIC),以运行在计算设备100上实现本文描述的任何特征或实施例。
计算设备100具有一个或多个显示器350、网络接口354(或是几个)以及存储硬件356和处理硬件358,这可以是以下任何一个或更多的组合:中央处理单元、图形处理单元、模拟数字转换器、总线芯片、FPGA、ASIC、专用标准产品(ASSP)或复杂可编程逻辑器件(CPLD),等等。存储硬件356可以是磁存储器、静态存储器、易失性存储器、非易失性存储器、光学或磁可读物质等的任何组合。这里使用的术语“存储”和“存储硬件”的含义并不是指信号或能量本身,而是指物理装置和物质状态。计算设备100的硬件元件可以以本领域最好理解的机器计算的方式协作。此外,输入设备可以与计算设备100集成或进行通信。计算设备100可以具有任何形式因子,也可以用于任何类型的包含设备。计算设备100可以是手持设备的形式,诸如智能手机、平板电脑、游戏设备、服务器、机架安装或背板上的计算机、系统上的芯片或其他。
上述讨论的实施例和特征可以以被存储在易失性或非易失性计算机或设备可读存储硬件中的信息的形式实现。这被认为至少包括硬件,诸如光存储(如压缩盘只读存储器(CD-ROM))、磁性介质、闪存只读存储器(ROM)或任何存储数字信息的方法,以便容易用于处理硬件358。存储的信息可以是机器可执行指令(例如,已编译的可执行二进制代码)、源代码、字节码或任何其他信息的形式,这些信息可用于启用或配置计算设备来执行上述各种实施例。这也被认为是包括至少易失存储器,诸如随机存取存储器(RAM),和/或虚拟存储器存储信息,诸如在执行实施例的程序期间的中央处理单元(CPU)指令,以及非易失性存储信息,允许一个程序或可执行加载和执行的程序。实施例和特征可以在任何类型的计算设备上执行,包括便携式设备、工作站、服务器、移动无线设备,等等。
Claims (10)
1.一种由计算设备执行的方法,所述方法包括:
执行操作系统,所述操作系统管理任意进程的执行;
重复地估计所述任意进程的能耗并且存储能量信息,所述能量信息包括相应任意进程的进程标识符,所述相应任意进程的所述进程标识符与所述任意进程的能耗的相应估计相关联地被存储,所述估计已经基于获得的处理器资源的分配而被计算以用于所述相应任意进程的执行;
在执行所述任意进程时,接收与估计能耗相关的标签请求,所述标签请求由所述任意进程在执行时提交,每个标签请求包括由对应的进程确定的相应标签;
通过确定标记的能耗估计来响应标签请求,所述标记的能耗估计针对提交所述标签请求的任何进程的执行时段而被估计,所述时段的开始对应于所述标签请求的接收;以及
将所述标签请求的所述标签和所述标记的能耗估计与提交所述标签请求的任何进程的所述进程标识符关联地存储在所述能量信息中。
2.根据权利要求1所述的方法,其中所述估计由所述计算设备实现的模型来执行,所述模型对被提供到所述计算设备的一个或多个硬件组件的以及由所述计算设备的所述一个或多个硬件组件使用的功率进行建模。
3.根据权利要求1所述的方法,其中所述估计和所述确定所述标记的能耗估计由执行在所述计算设备上的能量估计引擎来执行,所述能量估计引擎包括接口,所述任意进程通过所述接口向所述能量估计引擎提交所述标签请求。
4.根据权利要求1所述的方法,还包括从所述任意进程中的一些进程接收第二标签请求,其中所述第二标签请求基于具有相同的标签作为终止的标签请求来终止相应标签请求中的一些标签请求的时段,并且其中终止时段还确定其对应的标记的能耗估计。
5.根据权利要求1所述的方法,还包括经由网络向聚合服务传输所述能量信息,所述聚合服务从其他计算设备接收能量信息,从所述计算设备和所述其他计算设备聚合所述能量信息,并且呈现聚合的所述能量信息以用于通过所述网络进行查询。
6.一种计算设备,包括:
处理硬件;
存储硬件,其存储操作系统、由所述处理硬件可执行的可执行映像,所述可执行映像当由所述操作系统加载时被执行为由所述操作系统管理的进程;
所述存储硬件还存储被配置为使得所述处理硬件执行能量估计进程的信息,包括:
执行所述操作系统;
由所述操作系统开始执行由所述操作系统管理的进程,其中开始执行所述进程包括通过从所述存储硬件加载对应的可执行映像来创建所述进程;
由所述操作系统终止所述进程;
接收来自所述进程的标签请求,每个标签请求包括标签值;
针对以所述标签请求开始的相应时段,估计由所述进程消耗的能量的第一数量;以及
与标识所述进程的标识符相关联地存储第一数量。
7.根据权利要求6所述的计算设备,其中能量估计进程还包括:从所述进程接收包括标签值的标签请求,确定所述标签值对应于来自先前标签请求的标签值,以及基于所述确定来估计从所述先前标签请求到所述标签请求的时段的能量的对应第一数量。
8.根据权利要求6所述的计算设备,其中所述存储硬件还存储能量估计引擎,所述能量估计引擎被配置为重复地采样硬件的功率信息,并且基于所述功率信息来估计相应时间切片期间进程的能耗,其中所述重复地采样对进程是透明的并且不受所述进程控制。
9.一种由计算设备执行的方法,所述方法包括:
由操作系统执行进程,所述进程包括标签请求指令,其中所述进程由所述操作系统从被存储在所述计算设备的存储硬件上的对应可执行映像来加载,并且其中所述映像包括所述标签请求指令;
基于从所述计算设备的硬件接收到的功率和或处理度量,自动地计算由所述进程消耗的能量估计,其中消耗的能量针对由所述操作系统正执行的任何进程而被估计;
在执行所述进程时,通过执行所述标签指令来发出标签请求;
每次标签请求由进程发出,计算所述进程在所述标签请求定义的时段期间所消耗的标记的能量估计;以及
与所述进程的相应标识符相关联地存储由所述进程消耗的所述能量估计,并且与提交所述标签请求的任何进程的所述标识符相关联地存储标记的所述能量估计,并且其中所述进程包括通过从所述可执行映像被加载的所述标签请求指令。
10.根据权利要求9所述的方法,还包括从所述计算设备的功率源接收功率度量,并且基于所述功率度量来计算所述估计和所述标记的估计。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762445212P | 2017-01-11 | 2017-01-11 | |
US62/445,212 | 2017-01-11 | ||
US15/444,219 | 2017-02-27 | ||
US15/444,219 US10401934B2 (en) | 2017-01-11 | 2017-02-27 | Process-level activity tagging |
PCT/US2017/068613 WO2018132263A1 (en) | 2017-01-11 | 2017-12-28 | Process-level activity tagging |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110178100A true CN110178100A (zh) | 2019-08-27 |
CN110178100B CN110178100B (zh) | 2023-08-15 |
Family
ID=62783597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780082779.8A Active CN110178100B (zh) | 2017-01-11 | 2017-12-28 | 进程级活动标记 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10401934B2 (zh) |
EP (1) | EP3568736B1 (zh) |
CN (1) | CN110178100B (zh) |
WO (1) | WO2018132263A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11493975B2 (en) * | 2020-09-24 | 2022-11-08 | Intel Corporation | System, apparatus and method for providing power monitoring isolation in a processor |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055607A1 (en) * | 2009-08-31 | 2011-03-03 | Red Hat, Inc. | Methods for managing process activity data using a system-wide daemon |
US20110145612A1 (en) * | 2009-12-16 | 2011-06-16 | International Business Machines Corporation | Method and System to Determine and Optimize Energy Consumption of Computer Systems |
US20120011378A1 (en) * | 2010-07-09 | 2012-01-12 | Stratergia Ltd | Power profiling and auditing consumption systems and methods |
CN102567079A (zh) * | 2011-12-29 | 2012-07-11 | 中国人民解放军国防科学技术大学 | 基于渐进式踪迹更新的并行程序能耗模拟评估方法 |
US20130174128A1 (en) * | 2011-12-28 | 2013-07-04 | Microsoft Corporation | Estimating Application Energy Usage in a Target Device |
US20130212358A1 (en) * | 2012-02-15 | 2013-08-15 | Thang M. Tran | Data processing system with latency tolerance execution |
US20130268257A1 (en) * | 2012-04-09 | 2013-10-10 | Purdue Research Foundation | System and method for energy usage accounting in software applications |
CN103797436A (zh) * | 2011-09-20 | 2014-05-14 | 高通股份有限公司 | 用于计算装置的动态电力优化 |
CN104115094A (zh) * | 2011-12-15 | 2014-10-22 | 英特尔公司 | 包括代码再循环技术的用于能效和节能的方法、装置和系统 |
US20150227445A1 (en) * | 2012-04-23 | 2015-08-13 | Google Inc. | Systems and methods for correlating battery power draw and events in battery-operated computing devices |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272730B1 (en) | 2003-07-31 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform |
US8015566B2 (en) | 2005-01-13 | 2011-09-06 | Lenovo (Singapore) Pte. Ltd. | Attributing energy consumption to individual code threads in a data processing system |
US8275581B2 (en) | 2009-01-15 | 2012-09-25 | International Business Machines Corporation | Managing statistical profile data |
US8538484B2 (en) | 2009-08-14 | 2013-09-17 | Google Inc. | Providing a user with feedback regarding power consumption in battery-operated electronic devices |
US20110072378A1 (en) | 2009-09-24 | 2011-03-24 | Nokia Corporation | Method and apparatus for visualizing energy consumption of applications and actions |
NL2003915C2 (en) | 2009-12-07 | 2011-06-09 | Yggdra Solutions | Improved power usage management. |
EP2517085A4 (en) | 2009-12-23 | 2014-06-18 | Nokia Corp | ENERGY CONSUMPTION OPTIMIZATION FOR WEB APPLICATIONS |
KR20110090601A (ko) | 2010-02-04 | 2011-08-10 | 삼성전자주식회사 | 부가 정보 표시 방법 및 장치 |
JP5510543B2 (ja) | 2010-06-30 | 2014-06-04 | 富士通株式会社 | 情報処理装置の使用量解析方法、情報処理システム及びそのプログラム |
US20120278749A1 (en) | 2011-04-27 | 2012-11-01 | Nokia Corporation | Method and apparatus for providing consumption information for software applications |
US9003017B2 (en) | 2011-06-30 | 2015-04-07 | At&T Intellectual Property I, L.P. | Methods, devices, and computer program products for providing a computing application rating |
US20110304645A1 (en) | 2011-06-30 | 2011-12-15 | Milan Milenkovic | Techniques for providing holistic views of personal energy consumption |
US20130231894A1 (en) | 2012-03-01 | 2013-09-05 | Nokia Corporation | Method and apparatus for providing battery information |
WO2014146843A1 (en) | 2013-03-22 | 2014-09-25 | St-Ericsson Sa | Calculating power consumption of electronic devices |
-
2017
- 2017-02-27 US US15/444,219 patent/US10401934B2/en active Active
- 2017-12-28 CN CN201780082779.8A patent/CN110178100B/zh active Active
- 2017-12-28 WO PCT/US2017/068613 patent/WO2018132263A1/en unknown
- 2017-12-28 EP EP17836076.4A patent/EP3568736B1/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055607A1 (en) * | 2009-08-31 | 2011-03-03 | Red Hat, Inc. | Methods for managing process activity data using a system-wide daemon |
US20110145612A1 (en) * | 2009-12-16 | 2011-06-16 | International Business Machines Corporation | Method and System to Determine and Optimize Energy Consumption of Computer Systems |
US20120011378A1 (en) * | 2010-07-09 | 2012-01-12 | Stratergia Ltd | Power profiling and auditing consumption systems and methods |
CN103797436A (zh) * | 2011-09-20 | 2014-05-14 | 高通股份有限公司 | 用于计算装置的动态电力优化 |
CN104115094A (zh) * | 2011-12-15 | 2014-10-22 | 英特尔公司 | 包括代码再循环技术的用于能效和节能的方法、装置和系统 |
US20130174128A1 (en) * | 2011-12-28 | 2013-07-04 | Microsoft Corporation | Estimating Application Energy Usage in a Target Device |
CN102567079A (zh) * | 2011-12-29 | 2012-07-11 | 中国人民解放军国防科学技术大学 | 基于渐进式踪迹更新的并行程序能耗模拟评估方法 |
US20130212358A1 (en) * | 2012-02-15 | 2013-08-15 | Thang M. Tran | Data processing system with latency tolerance execution |
US20130268257A1 (en) * | 2012-04-09 | 2013-10-10 | Purdue Research Foundation | System and method for energy usage accounting in software applications |
US20150227445A1 (en) * | 2012-04-23 | 2015-08-13 | Google Inc. | Systems and methods for correlating battery power draw and events in battery-operated computing devices |
Also Published As
Publication number | Publication date |
---|---|
EP3568736B1 (en) | 2023-01-18 |
US10401934B2 (en) | 2019-09-03 |
CN110178100B (zh) | 2023-08-15 |
US20180196487A1 (en) | 2018-07-12 |
EP3568736A1 (en) | 2019-11-20 |
WO2018132263A1 (en) | 2018-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667664B (zh) | 用于web应用的能量消耗优化 | |
EP1624397A1 (en) | Automatic validation and calibration of transaction-based performance models | |
CN111563703B (zh) | 项目管理系统、方法、计算机设备和计算机可读存储介质 | |
CN103064778A (zh) | 一种服务器性能测试方法、装置及系统 | |
CN109976975A (zh) | 一种磁盘容量预测方法、装置、电子设备及存储介质 | |
CN117196270B (zh) | 工作督办信息发布方法、系统、设备及介质 | |
CN113642301A (zh) | 报表的生成方法、装置及系统 | |
CN110178100A (zh) | 进程级活动标记 | |
CN111858604B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN116028108B (zh) | 一种依赖包安装用时分析方法、装置、设备及存储介质 | |
Kano et al. | Analysis and simulation of business solutions in a service-oriented architecture | |
CN114722789B (zh) | 数据报表集成方法、装置、电子设备及存储介质 | |
US7506319B2 (en) | Generating a model of software in execution | |
Zhu et al. | MDABench: Customized benchmark generation using MDA | |
CN114662005A (zh) | 用户行为轨迹的消息推送方法、装置、设备及存储介质 | |
CN114020717A (zh) | 分布式存储系统的性能数据获取方法、装置、设备及介质 | |
Bagnato et al. | Towards green metrics integration in the MEASURE platform. | |
Li et al. | A Tool for Energy Consumption Monitoring and Analysis of the Android Terminal | |
de Barros Paes et al. | RUP extension for the software performance | |
CN113627144B (zh) | 基于人工智能的图表生成方法、装置、电子设备及介质 | |
CN114860600B (zh) | 可视化数据埋点方法、装置、设备及存储介质 | |
CN112836924B (zh) | 一种资源分配审计的方法、装置、电子设备及存储介质 | |
Bilal et al. | Computing ripple effect for object oriented software | |
CN117993605A (zh) | 基于bim模型的ccer碳交易项目的碳减排量计算方法及装置 | |
CN115409581A (zh) | 基于用户行为配置化的产品推荐方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |