CN115878432A - 一种计算系统中的进程监控方法及相关设备 - Google Patents
一种计算系统中的进程监控方法及相关设备 Download PDFInfo
- Publication number
- CN115878432A CN115878432A CN202310122995.8A CN202310122995A CN115878432A CN 115878432 A CN115878432 A CN 115878432A CN 202310122995 A CN202310122995 A CN 202310122995A CN 115878432 A CN115878432 A CN 115878432A
- Authority
- CN
- China
- Prior art keywords
- target
- computing
- energy consumption
- computing device
- task
- 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
- 238000000034 method Methods 0.000 title claims abstract description 441
- 230000008569 process Effects 0.000 title claims abstract description 349
- 238000012544 monitoring process Methods 0.000 title claims abstract description 61
- 238000005265 energy consumption Methods 0.000 claims abstract description 167
- 238000012549 training Methods 0.000 claims description 178
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 claims description 23
- 229910052799 carbon Inorganic materials 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 14
- 230000000737 periodic effect Effects 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 60
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 229910002092 carbon dioxide Inorganic materials 0.000 description 6
- 239000001569 carbon dioxide Substances 0.000 description 6
- 238000013480 data collection Methods 0.000 description 6
- 230000007613 environmental effect Effects 0.000 description 5
- 102100033239 Ras association domain-containing protein 5 Human genes 0.000 description 4
- 108050007751 Ras association domain-containing protein 5 Proteins 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 2
- 102100025471 Epiphycan Human genes 0.000 description 1
- 101001056751 Homo sapiens Epiphycan Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003245 coal Substances 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229910052697 platinum Inorganic materials 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
- Testing And Monitoring For Control Systems (AREA)
Abstract
本说明书提供了一种计算系统中的进程监控方法及相关设备。该计算系统包括多个计算设备,多个计算设备中的至少部分计算设备用于执行目标计算任务;至少部分计算设备上运行与目标计算任务对应的至少一个计算进程,并且,至少部分计算设备上部署了与至少一个计算进程绑定的代理程序。该方法应用于至少部分计算设备中的目标计算设备上部署的代理程序。该方法包括:从目标计算设备运行的至少一个计算进程中确定待监控的目标进程;获取目标进程在目标时长范围内对应的CPU利用率,并获取目标计算设备在目标时长范围内的总能耗;基于目标进程在目标时长范围内对应的CPU利用率和总能耗,获取目标计算设备在目标时长范围内运行目标进程产生的能耗。
Description
技术领域
本说明书一个或多个实施例涉及数据监控技术领域,尤其涉及一种计算系统中的进程监控方法及相关设备。
背景技术
计算设备在执行模型训练的过程中会产生一定的能耗,而目前的绿色度评估主要就是基于模型训练过程中的能耗指标对模型训练的环境友好程度进行评估。进一步地,计算设备具体通过运行一个或多个进程来执行模型训练,因此,如何对计算设备在执行模型训练时运行的各个进程所产生的能耗实现准确的监控,以便精准评估该模型训练的环境友好程度是亟待解决的问题。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种计算系统中的进程监控方法及相关设备。
为实现上述目的,本说明书一个或多个实施例提供了一种计算系统中的进程监控方法,所述计算系统包括多个计算设备,所述多个计算设备中的至少部分计算设备用于执行目标计算任务;所述至少部分计算设备上运行与所述目标计算任务对应的至少一个计算进程,并且,所述至少部分计算设备上部署了与所述至少一个计算进程绑定的代理程序;所述方法应用于所述至少部分计算设备中的目标计算设备上部署的所述代理程序;所述方法包括:
从所述目标计算设备运行的所述至少一个计算进程中确定待监控的目标进程;
获取所述目标进程在目标时长范围内对应的CPU利用率,并获取所述目标计算设备在所述目标时长范围内产生的总能耗;
基于所述总能耗和所述目标进程在所述目标时长范围内对应的CPU利用率,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
相应地,本说明书还提供了一种计算系统中的进程监控装置,所述计算系统包括多个计算设备,所述多个计算设备中的至少部分计算设备用于执行目标计算任务;所述至少部分计算设备上运行与所述目标计算任务对应的至少一个计算进程,并且,所述至少部分计算设备上部署了与所述至少一个计算进程绑定的代理程序;所述装置应用于所述至少部分计算设备中的目标计算设备上部署的所述代理程序;所述装置包括:
确定单元,用于从所述目标计算设备运行的所述至少一个计算进程中确定待监控的目标进程;
第一获取单元,用于获取所述目标进程在目标时长范围内对应的CPU利用率,并获取所述目标计算设备在所述目标时长范围内产生的总能耗;
第二获取单元,用于基于所述总能耗和所述目标进程在所述目标时长范围内对应的CPU利用率,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
相应地,本说明书还提供了一种计算设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述各实施方式所述的计算系统中的进程监控方法。
相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述各实施方式所述的计算系统中的进程监控方法。
综上所述,为了对目标计算任务对应的一个或多个计算进程进行单独的能耗监控,以准确评估该目标计算任务对应的能耗情况,本申请可以先在执行该目标计算任务的计算设备上部署相应的代理程序,并且该代理程序与目标计算任务对应的一个或多个计算进程绑定。如此,当该一个或多个计算进程中的任一计算进程开始运行时,计算设备上部署的代理程序可以获取该计算进程在一定时长范围内对应的CPU利用率,并获取计算设备在该时长范围内产生的总能耗,从而可以基于该CPU利用率和该总能耗计算出计算设备在该时长范围内运行该计算进程所单独产生的能耗。如此,本申请实现了进程级别的能耗监控,提升了能耗监控的精确性。在模型训练场景下,本申请可以对模型训练对应的每个进程进行精确的能耗监控,进而可以基于每个进程的能耗情况对当前模型训练的环境影响进行准确、高效、可靠的评估,为模型的优化提供有效支撑。
附图说明
图1是一示例性实施例提供的一种计算系统的架构示意图;
图2是一示例性实施例提供的一种进程监控系统的架构示意图;
图3是一示例性实施例提供的一种计算系统中的进程监控方法的流程示意图;
图4是一示例性实施例提供的另一种计算系统中的进程监控方法的流程示意图;
图5是一示例性实施例提供的又一种计算系统中的进程监控方法的流程示意图;
图6是一示例性实施例提供的一种CPU利用率的示意图;
图7是一示例性实施例提供的一种计算系统中的进程监控装置的结构示意图;
图8是一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先,对本说明书中的部分用语进行解释说明,以便于本邻域技术人员理解。
(1)算力(FLOPs):可以指在模型运行时所需的计算次数,一般指需要多少个浮点运算(FLOP)。通常情况下,模型越复杂算力越大,模型运行次数越多累积的算力也越大。
(2)能耗(Energy):可以指计算设备在对模型进行实验、训练、推理等过程中所消耗的电能,单位通常为千瓦时(kilowatt-hours,kWh)。能耗主要可以包括运行能耗和补偿能耗。以一个数据中心为例,运行能耗主要包括数据中心的IT设备(例如服务器、网络设备和存储设备等)运行各项进程所产生的能耗,补偿能耗可以包括数据中心的空调用来冷却或加热数据中心中的IT设备所产生的其他能耗。需要说明的是,本申请提供的方案中所描述的能耗一般为运行能耗。
(3)二氧化碳(CO2)排放量:二氧化碳排放量表示在计算设备产生能耗的同时所对应产生的二氧化碳,是评估模型训练对于环境影响程度的一个重要指标。不同国家、地区、省份、区域的电力能源构成不一样,例如有的区域以核电、水电等清洁能源为主,有的区域则以煤电为主,因此每千瓦时的电能转化成二氧化碳的比例会有所不同。
如上所述,在模型训练过程中,往往需要监控其算力、能耗、碳排放量等各项数据,以对模型训练过程中的环境友好程度进行评估。其中,对于能耗监控而言,常规的方案大多是通过RAPL和nvidia-smi等工具来实现,但是RAPL和nvidia-smi等工具只能采集整个设备在运行过程中产生的总能耗,显然,计算设备除了运行了与模型训练对应的计算进程外,往往还运行了其他无关进程,例如包括通讯软件或者浏览器等进程。因此,RAPL和nvidia-smi等工具采集到的整个计算设备的总能耗对模型训练的能耗情况没有实际的参考价值,从而导致对模型训练的环境友好程度评估不够精细和准确。
基于此,本说明书提供了一种在计算设备上部署与待监控的计算进程绑定的代理程序,通过代理程序基于单个计算进程对应的CPU利用率和计算设备产生的总能耗,获取单个计算进程单独对应的能耗,从而实现进程级别的能耗监控的技术方案。
在实现时,目标计算设备上部署的代理程序可以从其运行的至少一个计算进程中确定待监控的目标进程。该目标计算设备可以是用于执行目标计算任务的至少一个计算设备中的任意一个计算设备,该目标计算设备上运行的该至少一个计算进程用来执行上述目标计算任务。然后,代理程序可以获取该目标进程在目标时长范围内对应的CPU利用率,并获取该目标计算设备在目标时长范围内产生的总能耗,并基于该目标进程在该目标时长范围内对应的CPU利用率和该目标计算设备产生的总能耗,获取目标计算设备在目标时长范围内运行该目标进程产生的能耗。
综上所述,为了对目标计算任务对应的一个或多个计算进程进行单独的能耗监控,以准确评估该目标计算任务对应的能耗情况,本申请可以先在执行该目标计算任务的计算设备上部署相应的代理程序,并且该代理程序与目标计算任务对应的一个或多个计算进程绑定。如此,当该一个或多个计算进程中的任一计算进程开始运行时,计算设备上部署的代理程序可以获取该计算进程在一定时长范围内对应的CPU利用率,并获取计算设备在该时长范围内产生的总能耗,从而可以基于该CPU利用率和该总能耗计算出计算设备在该时长范围内运行该计算进程所单独产生的能耗。如此,本申请实现了进程级别的能耗监控,提升了能耗监控的精确性。在模型训练场景下,本申请可以对模型训练对应的每个进程进行精确的能耗监控,进而可以基于每个进程的能耗情况对当前模型训练的环境影响进行准确、高效、可靠的评估。
请参阅图1,图1是一示例性实施例提供的一种计算系统的架构示意图。本说明书实施例的技术方案可以在图1所示的系统架构或者类似的系统架构中具体实施。如图1所示,该计算系统10可以包括多个计算设备,例如包括计算设备100a,计算设备100b和计算设备100c等。
在一示出的实施方式中,该计算系统10包括的多个计算设备中的至少部分计算设备可以用于执行目标计算任务。相应的,该至少部分计算设备运行有与该目标计算任务对应的至少一个计算进程。可以理解的是,该至少部分计算设备上还可以运行有与该目标计算任务无关的其他任何进程,本说明书对此不做具体限定。
示例性的,该计算系统10中的计算设备100a和计算设备100b可以用于执行目标计算任务,计算设备100a和计算设备100b上运行有与该目标计算任务对应的至少一个计算进程。
在一示出的实施方式中,该目标计算任务可以为针对目标模型的训练任务,相应的,上述至少部分计算设备运行有与该目标模型的训练任务对应的至少一个计算进程。
示例性的,该计算系统10中的计算设备100a和计算设备100b可以用于执行针对目标模型的训练任务,计算设备100a和计算设备100b上运行有与该目标模型的训练任务对应的至少一个计算进程。
在一示出的实施方式中,该计算系统10支持对该目标模型的多种训练模式。示例性的,该多种训练模式可以包括:通过单个计算设备采用单进程对目标模型进行训练的模式(即单机单进程模式),通过单个计算设备采用多进程对目标模型进行训练的模式(即单机多进程模式),通过多个计算设备对目标模型进行训练的模式(即分布式训练模式)。其中,分布式训练模式也可称之为多机多进程模式,分布式训练模式中的各个计算设备可以用于执行针对目标模型的训练任务中的部分任务,各个计算设备可以采用单进程或者多进程来执行这部分任务。
在一示出的实施方式中,如果针对目标模型的训练模式为单机单进程模式,可以通过该计算系统10中的一个计算设备来执行针对该目标模型的训练任务,进一步地,这一个计算设备具体可以采用一个计算进程来执行针对该目标模型的训练任务。示例性的,在单机单进程模式下,计算系统10中的计算设备100a可以用于执行针对该目标模型的训练任务,计算设备100a上运行有与该目标模型的训练任务对应的一个计算进程。
在一示出的实施方式中,如果针对目标模型的训练模式为单机多进程模式,可以通过该计算系统10中的一个计算设备来执行针对该目标模型的训练任务,进一步地,这一个计算设备具体可以采用多个计算进程来执行针对该目标模型的训练任务。其中,每个计算进程可以用于执行针对该目标模型的训练任务中的部分任务。示例性的,在单机单进程模式下,计算系统10中的计算设备100b可以用于执行针对该目标模型的训练任务,计算设备100b上运行有与该目标模型的训练任务对应的多个计算进程。
在一示出的实施方式中,如果针对目标模型的训练模式为分布式训练模式,可以通过该计算系统10中的多个计算设备来执行针对该目标模型的训练任务,进一步地,这多个计算设备各自可以采用一个或多个计算进程来执行针对该目标模型的训练任务。其中,每个计算设备可以用于执行针对该目标模型的训练任务中的部分任务。示例性的,在分布式训练模式下,计算系统10中的计算设备100a、计算设备100b和计算设备100c可以用于执行针对该目标模型的训练任务,计算设备100a、计算设备100b和计算设备100c上运行有与该目标模型的训练任务对应的一个或多个计算进程。
在一示出的实施方式中,该计算系统10可以为分布式计算系统,示例性的,该分布式计算系统可以包括基于TensorFlow框架的分布式训练系统。
在一示出的实施方式中,该计算设备100a、计算设备100b和计算设备100c可以为具备上述功能的智能可穿戴设备、智能手机、平板电脑、笔记本、台式电脑、车载计算机或服务器,等等,本说明书对此不做具体限定。在一示出的实施方式中,计算设备100a、计算设备100b和计算设备100c也可以为同一台计算设备中的多个虚拟机,本说明书对此不做具体限定。
进一步地,请参阅图2,图2是一示例性实施例提供的一种进程监控系统的架构示意图。本说明书实施例的技术方案可以在图2所示的系统架构或者类似的系统架构中具体实施。如图2所示,该进程监控系统可以包括多个代理程序(agent),这多个代理程序可以分别部署在用于执行目标计算任务的多个计算设备上。代理程序可以是跟随目标计算任务而启动的进程级监控插件。示例性的,代理程序可以是跟随用户配置的模型训练脚本而启动的进程级监控插件。上述用于执行目标计算任务的多个计算设备例如可以为上述图1所示的计算系统10中的计算设备100a和计算设备100b等。
请一并参考图1对应实施例的描述,计算设备100a和计算设备100b上运行有与目标计算任务对应的至少一个计算进程。在一示出的实施方式中,计算设备100a上部署的代理程序可以与其运行的与目标计算任务对应的至少一个计算进程绑定,同理,计算设备100b上部署的代理程序可以与其运行的与目标计算任务对应的至少一个计算进程绑定。
在一示出的实施方式中,以计算设备100a为例,当计算设备100a上运行的与目标计算任务对应的至少一个计算进程中的待监控的目标进程开始运行时,与其绑定的代理程序也随之启动,开始监控该目标进程对应的能耗情况。其中,该待监控的目标进程可以为上述与目标计算任务对应的至少一个计算进程中的任一计算进程。
在一示出的实施方式中,仍以计算设备100a为例,计算设备100a上部署的代理程序可以在目标进程开始运行后,获取该目标进程在目标时长范围内对应的CPU利用率,并获取该计算设备100a在该目标时长范围内产生的总能耗。示例性的,如图2所示,可以通过计算设备100a上的RAPL和nvidia-smi等工具获取计算设备100a在该目标时长范围内产生的总能耗。然后,代理程序可以基于该目标进程在该目标时长范围内对应的CPU利用率以及该计算设备100a在该目标时长范围内产生的总能耗,获取计算设备100a在目标时长范围内运行该目标进程产生的能耗,进而实现了对单个计算进程的能耗情况的跟踪管理。
在一示出的实施方式中,如上所述,该目标计算任务可以为针对目标模型的训练任务,并且该目标模型的训练任务可以支持多种训练模式。
示例性的,以训练模式为单机单进程模式为例,研发人员可以采用计算设备100a执行针对目标模型的训练任务,相应的,计算设备100a上将会启用一个计算进程来执行该训练任务。当计算设备100a上与该训练任务对应的这一个计算进程开始运行时,计算设备上部署的代理程序可以识别到当前的训练模式为单机单进程模式,从而确定与该训练任务对应的这一个计算进程为待监控的目标进程,并监控该目标进程对应的能耗情况。例如,代理程序可以监控计算设备100a在每个目标时长范围内运行该目标进程所单独产生的能耗,比如计算设备100a运行该目标进程每5秒所产生的能耗,等等。
示例性的,以训练模式为单机多进程模式为例,研发人员仍然可以采用计算设备100a执行针对目标模型的训练任务,相应的,计算设备100a上将会启用多个计算进程来执行该训练任务。需要说明的是,计算设备100a可以同时运行这多个计算进程来执行该训练任务,也可以按序分别运行这多个计算进程中的部分计算进程来执行该训练任务,等等,本说明书对此不做具体限定。当计算设备100a上与该训练任务对应的多个计算进程中的任一计算进程开始运行时,计算设备100a上部署的代理程序可以识别到当前的训练模式为单机多进程模式,从而确定与该训练任务对应的多个计算进程,并从中确定当前待监控的目标进程,并监控该目标进程对应的能耗情况。在一示出的实施方式中,当这多个计算进程同时运行时,代理程序可以同时监控这多个计算进程各自的能耗情况(即这多个计算进程均为待监控的目标进程)。
示例性的,以训练模式为分布式训练模式为例,研发人员可以采用计算设备100a和计算机设备100b执行针对目标模型的训练任务,进一步地,计算设备100a和计算机设备100b各自可以启用一个或多个计算进程来执行相应的训练任务。当计算设备100a或者计算设备100b上与该训练任务对应的计算进程开始运行时,计算设备100a或者计算设备100b上各自部署的代理程序可以识别到当前的训练模式为分布式训练模式,从而确定与该训练任务对应的一个或多个计算进程,并监控该一个或多个计算进程对应的能耗情况。
在一示出的实施方式中,代理程序还可以识别并适配训练任务使用的硬件设备(例如CPU或GPU),以获取该CPU和/或GPU在目标时长范围内上运行目标进程所产生的能耗。
示例性的,以单机单进程模式为例,计算设备100a可以通过一个CPU运行一个计算进程来执行针对目标模型的训练任务,则计算设备100a上的代理程序可以获取该CPU在目标时长范围内运行该计算进程产生的能耗。或者,计算设备100a也可以通过一个GPU运行一个计算进程来执行针对目标模型的训练任务,则计算设备100a上的代理程序可以获取该GPU在目标时长范围内运行该计算进程产生的能耗。
示例性的,以单机多进程模式为例,计算设备100a可以通过一个CPU运行多个计算进程来执行针对目标模型的训练任务,则计算设备100a上的代理程序可以获取该CPU在目标时长范围内运行这多个计算进程各自产生的能耗。或者,计算设备100a可以通过多个CPU运行多个计算进程来执行针对目标模型的训练任务,则计算设备100a上的代理程序可以获取每个CPU在目标时长范围内运行各自的计算进程所产生的能耗。又或者,计算设备100a也可以通过多个GPU运行多个计算进程来执行针对目标模型的训练任务,则计算设备100a上的代理程序可以获取每个GPU在目标时长范围内运行各自的计算进程所产生的能耗。分布式训练模式下每个计算设备的情况可以参考上述单机单进程模式和单机多进程模式,此处不再进行赘述。
在一示出的实施方式中,如图2所示,该进程监控系统还可以包括服务端(server)。
在一示出的实施方式中,代理程序可以将获取到的各个计算进程的能耗数据上传至服务端,以由该服务端进行数据存储、数据汇总和数据融合等处理。示例性的,代理程序可以周期性地获取各个计算进程在目标时长范围内的能耗数据,并周期性地将其能耗数据上传至服务端,比如,代理程序可以周期性地获取并上传计算设备在运行目标进程过程中每5秒所产生的能耗数据。
在一示出的实施方式中,如图2所示,代理程序可以通过远程过程调用(RemoteProcedure Call,RPC)的通讯方式,将各个计算进程的能耗数据上传至服务端。
在一示出的实施方式中,如图2所示,服务端也支持对外进行数据服务,例如服务端可以基于HTTP API服务于外部系统,以面向用户提供模型训练任务对应的至少一个进程各自对应的能耗数据。示例性的,服务端内可以设置一个基于WEB的HTML页面,以通过该页面展示当前监控系统收集到的数据。
在一示出的实施方式中,该服务端可以是一台服务器,也可以是由多台服务器构成的服务器集群,或者,该服务端也可以是服务器中的一个程序,甚至,该服务端也可以是计算系统10包括的多个计算设备中的某一个计算设备,这个计算设备的性能可能强于计算系统10中的其他计算设备,等等,本说明书对此不做具体限定。
在一示出的实施方式中,除了监控单个计算进程的能耗数据外,代理程序还可以进一步监控单个计算进程的算力和碳排放量等数据,具体可参考下述实施例的描述,此处不再进行赘述。
可以理解的是,图2所示的系统结构仅为示例性说明,在一些可能的实施方式中,例如在单机单进程模式下,该进程监控系统可以仅包括一个代理程序,这一个代理程序部署在基于单机单进程模式来执行针对目标模型的训练任务的一个计算设备上。示例性的,在单机单进程模式下,该进程监控系统可以仅包括一个部署在计算机设备100a上的代理程序。此外,在一些可能的实施方式中,比如在单机单进程模式或者单机多进程模式下,该进程监控系统可以不包括服务端,各个计算设备上采集到的能耗数据等可以保存在计算设备本地,不上传至服务端,本说明书对此不做具体限定。
请参阅图3,图3是一示例性实施例提供的一种计算系统中的进程监控方法的流程示意图。该计算系统可以为图1所示的计算系统10,可以包括多个计算设备。该多个计算设备中的至少部分计算设备可以用于执行目标计算任务。其中,该至少部分计算设备上运行有与目标计算任务对应的至少一个计算进程,并且,该至少部分计算设备上部署了与该至少一个计算进程绑定的代理程序。该方法应用于上述至少部分计算设备中的任一目标计算设备上部署的代理程序。该目标计算设备例如可以为上述图2所示的计算设备100a或者计算设备100b。如图3所示,该方法具体可以包括如下步骤S101-步骤S103。
步骤S101,从目标计算设备运行的至少一个计算进程中确定待监控的目标进程。
在一示出的实施方式中,本申请提供的进程监控方法可以适用于多种进程监控模式,例如包括本地任务模式和中心服务模式。其中,在本地任务模式下,各个计算设备上的代理程序在获取到待监控的计算进程的各项数据后,可以将各项数据保存在本地,而在中心服务模式下,各个计算设备上的代理程序还可以进一步将获取到的待监控的计算进程的各项数据上传至服务端,以由该服务端进行数据存储和汇总,等等。
在一示出的实施方式中,请参阅图4,图4是一示例性实施例提供的另一种计算系统中的进程监控方法的流程示意图。如图4所示,以目标计算任务为针对目标模型的训练任务为例,当本次进程监控采用本地任务模式时,整个进程监控流程可以包括初始化阶段和数据采集阶段。其中,初始化阶段主要用于代理程序确定本次训练任务对应的一个或多个计算进程,即确定本次需要监控的一个或多个计算进程。其中,数据采集阶段主要用于代理程序对这一个或多个计算进程中的任意一个计算进程(例如上述目标进程)进行监控,并采集相应的数据。
在一示出的实施方式中,如图4所示,研究人员可以先基于tensorflow框架在目标计算设备上配置针对目标模型的训练任务。然后,研究人员可以基于实际需求在目标计算设备部署的代理程序上配置针对该训练任务的数据采集模式。示例性的,上述数据采集模式可以包括数据的种类以及数据采集的周期,等等,本说明书对此不做具体限定。示例性的,数据的种类可以包括能耗、算力和碳排放量等,数据采集的周期可以为10秒或者5秒等,比如采集该训练任务对应的各个计算进程每10秒对应的能耗数据,或者采集该训练任务对应的各个计算进程每5秒对应的能耗数据,等等,本说明书对此不做具体限定。进一步地,如图4所示,代理程序向tensorflow框架请求获取目标模型的配置信息,并接收tensorflow框架返回的目标模型的配置信息。示例性的,目标模型的配置信息具体可以包括目标模型的TF_CONFIG,其中,TF_CONFIG是tensorflow框架中的一个配置,用于配置跟训练任务有关的各项参数,例如包括训练模式(单机单进程模式、单机多进程模式或者分布式训练模式),样本数据的存储位置,迭代次数,等等,本说明书对此不做具体限定。
在一示出的实施方式中,图4所示,代理程序在获得目标模型的配置信息后,可以基于该目标模型的配置信息确定目标模型的训练模式。需要说明的是,在采用本地任务模式的情况下,模型的训练模式通常为单机单进程模式和单机多进程模式,即通过本地的一个计算设备执行完整的训练任务。
在一示出的实施方式中,代理程序进一步可以确定该目标计算设备上运行的与该目标模型的训练任务对应的一个或多个计算进程。相当于实现了上述代理程序与目标计算设备上运行的与目标计算任务对应的至少一个计算进程绑定。在一示出的实施方式中,如上所述,由于本地任务模式下,模型的训练模式通常为单机单进程模式和单机多进程模式,因此代理程序可以直接从该目标计算设备的系统中获取该训练任务关联的一个或多个进程标识(pid),从而确定该目标计算设备上运行的与该训练任务对应的一个或多个计算进程。至此,完成了进程监控流程中的初始化阶段。
在一示出的实施方式中,如图4所示,代理程序确定该目标计算设备上运行的一个或多个计算进程中待监控的目标进程。在一示出的实施方式中,如果目标模型的训练模式是单机单进程模式,该待监控的目标进程即为训练任务对应的唯一一个计算进程。在一示出的实施方式中,如果目标模型的训练模式是单机多进程模式,该待监控的目标进程可以为训练任务对应的多个计算进程中的任意一个计算进程,或者,该待监控的目标进程可以为多个计算进程中目标计算设备正在运行的计算进程,也可以为多个计算进程中主要的计算进程,等等,本说明书对此不做具体限定。
在一示出的实施方式中,请参阅图5,图5是一示例性实施例提供的又一种计算系统中的进程监控方法的流程示意图。如图5所示,仍以目标计算任务为针对目标模型的训练任务为例,当本次进程监控采用中心服务模式时,整个进程监控流程可以包括初始化阶段、数据采集阶段、数据上传阶段和训练结束阶段。其中,初始化阶段主要包括代理程序确定本次训练任务对应的一个或多个计算进程。其中,数据采集阶段主要包括代理程序对这一个或多个计算进程中的任意一个计算进程(例如上述目标进程)进行监控,并采集相应的数据。其中,数据上传阶段主要包括代理程序将采集到的各个计算进程的数据上传至服务端。其中,训练结束阶段主要包括代理程序向服务端报告本次训练结束。
在一示出的实施方式中,如图5所示,研究人员在启动训练任务前可以先启动一个服务端。该服务端可以用于聚合多用户、多计算设备、多进程的能耗、算力和碳排放量等数据,其中,所谓的多用户例如可以包括多个实验室下待训练的多个目标模型。然后,研究人员可以基于tensorflow框架在目标计算设备上配置针对目标模型的训练任务。然后,研究人员可以基于实际需求在目标计算设备部署的代理程序上配置针对该训练任务的数据采集模式。示例性的,上述数据采集模式可以包括数据的种类以及数据采集的周期,等等,此处不再进行赘述。进一步地,如图5所示,代理程序向tensorflow框架请求获取目标模型的配置信息,并接收tensorflow框架返回的目标模型的配置信息。如上所述,目标模型的配置信息具体可以包括目标模型的TF_CONFIG,其中,TF_CONFIG是tensorflow框架中的一个配置,用于配置跟训练任务有关的各项参数,例如包括训练模式(单机单进程模式、单机多进程模式或者分布式训练模式),样本数据的存储位置,迭代次数,等等,本说明书对此不做具体限定。在一示出的实施方式中,在分布式训练模式下,TF_CONFIG还可以用于配置分布式训练中的主进程的参数,例如包括运行该主进程的计算设备的设备信息,运行主进程的计算设备可以称为主计算设备(或者说主机器),主计算设备的rank=0。
在一示出的实施方式中,如图5所示,代理程序在获得目标模型的配置信息后,可以基于该目标模型的配置信息确定目标模型的训练模式。需要说明的是,在采用中心服务模式的情况下,模型的训练模式通常为分布式训练模式,也可以是单机单进程模式和单机多进程模式,本说明书对此不做具体限定。
在一示出的实施方式中,如图5所示,代理程序可以向服务端发送训练任务信息。其中,该训练任务信息例如可以包括上述目标模型的配置信息。相应的,服务端在接收到训练任务信息后,可以基于该训练任务信息查询该训练任务对应的任务标识,并将该任务标识发送至代理程序。在一示出的实施方式中,如果当前目标模型的训练模式为单机单进程模式或者单机多进程模式,服务端在接收到训练任务信息后,可以直接基于该训练任务信息返回对应的任务标识至代理程序。在一示出的实施方式中,如果当前目标模型的训练模式为分布式训练模式,服务端在接收到训练任务信息后,需要先判断该代理程序对应的目标计算设备是否为分布式训练中运行主进程的主计算设备。示例性的,如果该目标计算设备为主计算设备(比如目标计算设备的rank=0),则服务端在接收到目标计算设备发送的训练任务信息后,可以直接基于该训练任务信息向该目标计算设备中的代理程序返回对应的任务标识。示例性的,如果该目标计算设备不是主计算设备(比如目标计算设备的rank≠0),则服务端在接收到目标计算设备发送的训练任务信息后,需要等待主计算设备中的代理程序向其发送训练任务信息,才能获取对应的任务标识并向该目标计算设备中的代理程序返回该任务标识。
在一示出的实施方式中,目标计算设备中的代理程序还可以向服务端上报目标计算设备的设备信息,例如包括目标计算设备中的CPU或者GPU的数量、型号等,本说明书对此不做具体限定。
在一示出的实施方式中,代理程序在获取到当前训练任务的任务标识后,可以获取与该任务标识关联的一个或多个进程标识,从而确定该目标计算设备上运行的与该训练任务对应的一个或多个计算进程。至此,完成了进程监控流程中的初始化阶段。
在一示出的实施方式中,如图5所示,代理程序确定目标计算设备运行的与该训练任务对应的一个或多个计算进程中待监控的目标进程。示例性的,该待监控的目标进程可以为多个计算进程中的任意一个计算进程,也可以为多个计算进程中主要的计算进程,等等,本说明书对此不做具体限定。
可以理解的是,当目标模型的训练模式为分布式训练模式(或者说多机多进程模式)时,由于需要对多个计算设备上的训练结果进行整合汇总以获得完整的模型训练结果,一般情况下都需要使用中心服务模式进行进程监控,以使得各个计算设备上部署的代理程序可以将各自采集到的进程级数据上传至服务端,从而整合得到整个模型训练中各个进程对应的能耗、算力和碳排放量情况。
步骤S102,获取目标进程在目标时长范围内对应的CPU利用率,并获取目标计算设备在目标时长范围内的总能耗。
在一示出的实施方式中,请参阅图6,图6是一示例性实施例提供的一种CPU利用率的示意图。图6提供了三种不同型号的CPU(分别为AMD EPYC 7T83、lntel (R) Xeon (R)CPUE5-2650 v2、lntel (R) Xeon (R) Platinum 8163)的利用率与设备能耗之间的关系。如图6所示,当计算设备运行时,计算设备产生的能耗与CPU利用率是一个线性的关系,简言之,计算设备产生的能耗往往随着CPU利用率的提高而提高。基于此,本申请可以基于目标进程在目标时长范围内对应的CPU利用率,在目标计算设备产生的总能耗中计算得到目标进程单独对应的那部分能耗,从而实现进程级的能耗监控,大大提升能耗监控的精确性。
在一示出的实施方式中,如图4和图5所示,代理程序可以获取目标计算设备在目标时长范围内运行当前所有进程所产生的总能耗,并且,代理程序可以获取该目标进程在目标时长范围内对应的CPU利用率。进一步地,如图4和图5所示,后续代理程序便可以基于该总能耗和目标进程在目标时长范围内对应的CPU利用率,计算得到目标计算设备在目标时长范围内运行该目标进程所产生的能耗。
在一示出的实施方式中,该目标时长范围可以是周期性的时长范围,即代理程序可以周期性地计算得到目标计算设备在每个目标时长范围内运行该目标进程所产生的能耗。
步骤S103,基于总能耗和目标进程在目标时长范围内对应的CPU利用率,获取目标计算设备在目标时长范围内运行目标进程产生的能耗。
在一示出的实施方式中,目标计算设备上的代理程序可以基于目标计算设备在目标时长范围内产生的总能耗和目标进程在目标时长范围内对应的CPU利用率,计算得到目标计算设备在目标时长范围内运行该目标进程所产生的能耗。
在一示出的实施方式中,代理程序可以获取目标计算设备上运行的所有进程在目标时长范围内对应的CPU总利用率,并计算该目标进程对应的CPU利用率在该CPU总利用率中的占比。然后,代理程序可以基于上述总能耗和占比,计算得到目标计算设备在目标时长范围内运行目标进程产生的能耗。
在一示出的实施方式中,在不考虑目标计算设备的空载能耗的情况下,具体计算方法可以如下公式(1)所示:
其中,Px为目标计算设备在目标时长范围内运行目标进程所产生的能耗,P为目标计算设备在目标时长范围内运行所有进程所产生的总能耗,Utilx为目标进程在目标时长范围内对应的CPU利用率,为目标计算设备上运行的所有进程在目标时长范围内对应的CPU总利用率,/>为目标进程对应的CPU利用率在该CPU总利用率中的占比。
在一示出的实施方式中,在考虑目标计算设备的空载能耗的情况下,代理程序还可以获取目标计算设备在未运行任何进程时对应的空载能耗,并基于上述总能耗、占比以及空载能耗,计算目标计算设备在目标时长范围内运行目标进程所产生的能耗。
在一示出的实施方式中,在考虑目标计算设备的空载能耗的情况下,代理程序还可以获取目标计算设备在目标时长范围内运行的所有进程的数量,并将空载能耗平均分配至每个进程,从而计算目标计算设备在目标时长范围内运行目标进程产生的能耗。具体计算方法可以如下公式(2)所示:
其中,Px为目标计算设备在目标时长范围内运行目标进程所产生的能耗,Pidle为目标计算设备在未运行任何进程下所存在的空载能耗,Taskcount为目标计算设备在目标时长范围内运行的所有进程的数量,P为目标计算设备在目标时长范围内运行所有进程所产生的总能耗,Utilx为目标进程在目标时长范围内对应的CPU利用率,为目标计算设备上运行的所有进程在目标时长范围内对应的CPU利用率,/>为目标进程对应的CPU利用率在该CPU总利用率中的占比。
在一示出的实施方式中,如果代理程序识别到该目标计算设备还采用了GPU进行模型训练,则在上述基于目标进程的CPU利用率获取了CPU在目标时长范围内运行目标进程所产生的能耗外,代理程序还可以通过tensorflow框架下的nvidia-smi等工具获取GPU在目标时长范围内运行目标进程所产生的能耗。
在一示出的实施方式中,代理程序除了可以监控目标进程的能耗情况外,还可以进一步监控目标进程在目标时长范围内的碳排放量和算力情况。
在一示出的实施方式中,如图4和图5所示,代理程序可以基于计算得到的目标计算设备在目标时长范围内运行目标进程产生的能耗,根据预设的能耗与二氧化碳之间的转化比例,进一步计算目标计算设备在目标时长范围内运行目标进程所产生的碳排放量。
在一示出的实施方式中,如图4和图5所示,代理程序可以在目标计算设备运行该目标进程的过程中,动态统计目标进程在目标时长范围内对应的算力。理论上,算力=模型复杂度×请求量,常规的算力计算方案通常是基于模型复杂度来静态计算模型训练中包括的每个操作(例如模型训练包括的每个加法运算或乘法运算)需要多少个浮点运算,计算结果与实际运行过程往往存在较大误差。如图4和图5所示,本申请可以在目标计算设备运行该目标进程的过程中,动态实时统计目标进程在目标时长范围内所作的每一次计算所对应的算力,算力统计结果更加精确、可靠。
在一示出的实施方式中,如图4和图5所示,代理程序还可以将获取到的目标进程在目标时长范围内对应的能耗、算力和碳排放量数据保存在目标设备本地。
在一示出的实施方式中,如图5所示,在中心服务模式下,目标计算设备上的代理程序还可以将目标进程在目标时长范围内对应的能耗、算力和碳排放量等数据上传至与其对应的服务端。在一示出的实施方式中,目标时长范围是周期性的时长范围,代理程序可以周期性地上报目标进程在每个目标时长范围内对应的能耗、算力和碳排放量等数据。示例性的,代理程序可以每隔5秒获取目标进程在每5秒内对应的能耗、算力和碳排放量等数据,并上传至服务端。在一示出的实施方式中,代理程序可以通过RPC通讯的方法将上述数据上传至服务端。
在一示出的实施方式中,如图5所示,服务端接收代理程序上传的目标进程在目标时长范围内对应的能耗、算力和碳排放量等数据,并存储目标进程在目标时长范围内对应的能耗、算力和碳排放量数据。示例性的,服务端可以将上述数据存储至相应的数据库中,比如SQLlite等轻型数据库,或者其他任何可能类型的数据库,本说明书对此不做具体限定。
在一示出的实施方式中,如图5所示,服务端还可以将目标进程在目标时长范围内对应的能耗、算力和碳排放量等数据通过预设界面向用户进行输出展示,以供用户进行查询分析,不断优化目标模型。
在一示出的实施方式中,如图5所示,在本次训练任务结束时,tensorflow可以向代理程序发送训练结束指示,代理程序基于该训练结束指示可以将采集到的目标进程的末尾数据上传至服务端。所谓末尾数据即目标进程在最后一段运行时间内对应的数据,其中,这最后一段运行时间可能不满足目标时长范围。比如,目标时长范围为5秒,训练任务的总时长为1分13秒,则在接收到训练结束指示后,代理程序可以将目标进程运行的最后3秒内对应的能耗、算力和碳排放量等数据上传至服务端,并向服务端报告本次针对目标模型的训练任务结束。
在一示出的实施方式中,在分布式训练模式下,可以由运行主进程的主计算设备中的代理程序向服务端报告本次训练任务结束。进一步地,在本次训练任务结束后,还可以撤销目标计算设备上部署的代理程序。
综上所述,为了对目标计算任务对应的一个或多个计算进程进行单独的能耗监控,以准确评估该目标计算任务对应的能耗情况,本申请可以先在执行该目标计算任务的计算设备上部署相应的代理程序,并且该代理程序与目标计算任务对应的一个或多个计算进程绑定。如此,当该一个或多个计算进程中的任一计算进程开始运行时,计算设备上部署的代理程序可以获取该计算进程在一定时长范围内对应的CPU利用率,并获取计算设备在该时长范围内产生的总能耗,从而可以基于该CPU利用率和该总能耗计算出计算设备在该时长范围内运行该计算进程所单独产生的能耗。如此,本申请实现了进程级别的能耗监控,提升了能耗监控的精确性。在模型训练场景下,本申请可以对模型训练对应的每个进程进行精确的能耗监控,进而可以基于每个进程的能耗情况对当前模型训练的环境影响进行准确、高效、可靠的评估。
与上述方法流程实现对应,本说明书的实施例还提供了一种计算系统中的进程监控装置。所述计算系统包括多个计算设备,所述多个计算设备中的至少部分计算设备用于执行目标计算任务;所述至少部分计算设备上运行与所述目标计算任务对应的至少一个计算进程,并且,所述至少部分计算设备上部署了与所述至少一个计算进程绑定的代理程序;所述装置应用于所述至少部分计算设备中的目标计算设备上部署的所述代理程序。请参阅图7,图7是一示例性实施例提供的一种计算系统中的进程监控装置的结构示意图。如图7所示,该装置30包括:
确定单元301,用于从所述目标计算设备运行的所述至少一个计算进程中确定待监控的目标进程;
第一获取单元302,用于获取所述目标进程在目标时长范围内对应的CPU利用率,并获取所述目标计算设备在所述目标时长范围内的总能耗;
第二获取单元304,用于基于所述目标进程在所述目标时长范围内对应的CPU利用率和所述总能耗,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
在一示出的实施方式中,所述目标计算任务包括针对目标模型的训练任务,所述计算系统支持针对目标模型的多种训练模式:其中,
如果所述训练模式为单个计算设备采用单进程对所述目标模型进行训练的模式,所述至少部分计算设备为一个计算设备,所述一个计算设备上运行与所述目标计算任务对应的一个计算进程;
如果所述训练模式为单个计算设备采用多进程对所述目标模型进行训练的模式,所述至少部分计算设备为一个计算设备,所述一个计算设备上运行与所述目标计算任务对应的多个计算进程。
在一示出的实施方式中,所述目标计算任务包括针对所述目标模型的分布式训练任务;所述训练模式为分布式训练模式,所述至少部分计算设备为多个计算设备,所述多个计算设备上各自运行与所述目标计算任务对应的至少一个计算进程。
在一示出的实施方式中,所述计算系统为分布式计算系统,所述分布式计算系统包括基于TensorFlow框架的分布式训练系统。
在一示出的实施方式中,所述第二获取单元304,具体用于:
获取所述目标计算设备上运行的所有进程在所述目标时长范围内对应的CPU总利用率,并确定所述目标进程对应的CPU利用率在所述CPU总利用率中的占比;
基于所述总能耗和所述占比,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
在一示出的实施方式中,所述装置30还包括:
第三获取单元303,用于获取所述目标计算设备在未运行任何进程时对应的空载能耗;
所述第二获取单元304,具体用于:
基于所述总能耗、所述空载能耗和所述占比,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
在一示出的实施方式中,所述装置30还包括:
算力统计单元305,用于在所述目标计算设备运行所述目标进程的过程中,动态统计所述目标进程在所述目标时长范围内对应的算力。
在一示出的实施方式中,所述装置30还包括:
碳排放量计算单元306,用于基于所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗,计算所述目标计算设备在所述目标时长范围内运行所述目标进程产生的碳排放量。
在一示出的实施方式中,所述装置30还包括:
数据上传单元307,用于将所述目标进程在所述目标时长范围内对应的能耗、算力和碳排放量中的至少一种数据上传至与所述代理程序对应的服务端,以由所述服务端进行存储,并将存储的能耗、算力和碳排放量中的至少一种数据通过预设界面向用户进行输出展示。
在一示出的实施方式中,所述目标时长范围为周期性的时长范围。
上述装置30中各个单元的功能和作用的实现过程具体详见上述图1-图6对应实施例的描述,在此不再进行赘述。应理解,上述装置30可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了CPU以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算设备。请参阅图8,图8是一示例性实施例提供的一种计算设备的结构示意图。该计算设备1000可以为图1所示的计算系统10中的任一计算设备(例如为上述目标计算设备),该计算设备1000上运行与目标计算任务对应的至少一个计算进程,并且,计算设备1000上部署了与所述至少一个计算进程绑定的代理程序。如图8所示,该计算设备1000可以包括处理器1001和存储器1002,进一步还可以包括输入设备1004(例如键盘等)和输出设备1005(例如显示器等)。处理器1001、存储器1002、输入设备1004和输出设备1005之间可以通过总线或其他方式连接。如图8所示,存储器1002包括计算机可读存储介质1003,该计算机可读存储介质1003存储有能够由处理器1001运行的计算机程序。处理器1001可以是通用中央处理器,微处理器,或用于控制以上方法实施例执行的集成电路。处理器1001在运行存储的计算机程序时,可以执行本说明书实施例中的进程监控方法的各个步骤,包括:从目标计算设备运行的所述至少一个计算进程中确定待监控的目标进程;获取所述目标进程在目标时长范围内对应的CPU利用率,并获取所述目标计算设备在所述目标时长范围内的总能耗;基于所述目标进程在所述目标时长范围内对应的CPU利用率和所述总能耗,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗,等等。
对上述计算系统中的进程监控方法的各个步骤的详细描述请参见之前的内容,此处不再进行赘述。
与上述方法实施例相对应,本说明书的实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中计算系统中的进程监控方法的各个步骤。具体请参见上述图1-图6对应实施例的描述,此处不再进行赘述。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
在一个典型的配置中,终端设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (13)
1.一种计算系统中的进程监控方法,所述计算系统包括多个计算设备,所述多个计算设备中的至少部分计算设备用于执行目标计算任务;所述至少部分计算设备上运行与所述目标计算任务对应的至少一个计算进程,并且,所述至少部分计算设备上部署了与所述至少一个计算进程绑定的代理程序;所述方法应用于所述至少部分计算设备中的目标计算设备上部署的所述代理程序;所述方法包括:
从所述目标计算设备运行的所述至少一个计算进程中确定待监控的目标进程;
获取所述目标进程在目标时长范围内对应的CPU利用率,并获取所述目标计算设备在所述目标时长范围内的总能耗;
基于所述总能耗和所述目标进程在所述目标时长范围内对应的CPU利用率,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
2.根据权利要求1所述的方法,所述目标计算任务包括针对目标模型的训练任务,所述计算系统支持针对目标模型的多种训练模式:其中,
如果所述训练模式为单个计算设备采用单进程对所述目标模型进行训练的模式,所述至少部分计算设备为一个计算设备,所述一个计算设备上运行与所述目标计算任务对应的一个计算进程;
如果所述训练模式为单个计算设备采用多进程对所述目标模型进行训练的模式,所述至少部分计算设备为一个计算设备,所述一个计算设备上运行与所述目标计算任务对应的多个计算进程。
3.根据权利要求2所述的方法,所述目标计算任务包括针对所述目标模型的分布式训练任务;所述训练模式为分布式训练模式,所述至少部分计算设备为多个计算设备,所述多个计算设备上各自运行与所述目标计算任务对应的至少一个计算进程。
4.根据权利要求3所述的方法,所述计算系统为分布式计算系统,所述分布式计算系统包括基于TensorFlow框架的分布式训练系统。
5.根据权利要求1所述的方法,所述基于所述总能耗和所述目标进程在所述目标时长范围内对应的CPU利用率,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗,包括:
获取所述目标计算设备上运行的所有进程在所述目标时长范围内对应的CPU总利用率,并确定所述目标进程对应的CPU利用率在所述CPU总利用率中的占比;
基于所述总能耗和所述占比,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
6.根据权利要求5所述的方法,所述方法还包括:
获取所述目标计算设备在未运行任何进程时对应的空载能耗;
所述基于所述总能耗和所述占比,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗,包括:
基于所述总能耗、所述空载能耗和所述占比,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
7.根据权利要求1所述方法,所述方法还包括:
在所述目标计算设备运行所述目标进程的过程中,动态统计所述目标进程在所述目标时长范围内对应的算力。
8.根据权利要求7所述方法,所述方法还包括:
基于所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗,计算所述目标计算设备在所述目标时长范围内运行所述目标进程产生的碳排放量。
9.根据权利要求8所述的方法,所述方法还包括:
将所述目标进程在所述目标时长范围内对应的能耗、算力和碳排放量中的至少一种数据上传至与所述代理程序对应的服务端,以由所述服务端进行存储,并将存储的能耗、算力和碳排放量中的至少一种数据通过预设界面向用户进行输出展示。
10.根据权利要求1-9任意一项所述的方法,所述目标时长范围为周期性的时长范围。
11.一种计算系统中的进程监控装置,所述计算系统包括多个计算设备,所述多个计算设备中的至少部分计算设备用于执行目标计算任务;所述至少部分计算设备上运行与所述目标计算任务对应的至少一个计算进程,并且,所述至少部分计算设备上部署了与所述至少一个计算进程绑定的代理程序;所述装置应用于所述至少部分计算设备中的目标计算设备上部署的所述代理程序;所述装置包括:
确定单元,用于从所述目标计算设备运行的所述至少一个计算进程中确定待监控的目标进程;
第一获取单元,用于获取所述目标进程在目标时长范围内对应的CPU利用率,并获取所述目标计算设备在所述目标时长范围内的总能耗;
第二获取单元,用于基于所述总能耗和所述目标进程在所述目标时长范围内对应的CPU利用率,获取所述目标计算设备在所述目标时长范围内运行所述目标进程产生的能耗。
12.一种计算设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如权利要求1至10任意一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310122995.8A CN115878432B (zh) | 2023-02-16 | 2023-02-16 | 一种计算系统中的进程监控方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310122995.8A CN115878432B (zh) | 2023-02-16 | 2023-02-16 | 一种计算系统中的进程监控方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115878432A true CN115878432A (zh) | 2023-03-31 |
CN115878432B CN115878432B (zh) | 2023-05-12 |
Family
ID=85761193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310122995.8A Active CN115878432B (zh) | 2023-02-16 | 2023-02-16 | 一种计算系统中的进程监控方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878432B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306118A (zh) * | 2011-08-31 | 2012-01-04 | 中兴通讯股份有限公司 | Android终端应用程序功耗监控的方法和装置 |
JP2012185610A (ja) * | 2011-03-04 | 2012-09-27 | Nec Corp | 情報処理装置、作業重視度算出方法、および作業重視度算出プログラム |
CN102999418A (zh) * | 2012-11-16 | 2013-03-27 | 广东欧珀移动通信有限公司 | 一种基于pc端的手机监测方法 |
CN103997421A (zh) * | 2014-04-22 | 2014-08-20 | 北京邮电大学 | 功耗管理方法及分级功耗网络 |
CN111858284A (zh) * | 2020-07-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种人工智能服务器的资源监控方法和装置 |
CN112002113A (zh) * | 2019-05-26 | 2020-11-27 | 苏州见微智能科技有限公司 | 一种基于NB-IoT网络的智能遥控系统及方法 |
CN114218041A (zh) * | 2021-12-13 | 2022-03-22 | 杭州趣链科技有限公司 | 动态进程监控方法、装置、设备和存储介质 |
CN114661545A (zh) * | 2022-03-02 | 2022-06-24 | 平安科技(深圳)有限公司 | 处理器资源的监控方法、装置、设备及存储介质 |
CN115270505A (zh) * | 2022-08-16 | 2022-11-01 | 中国电信股份有限公司 | 一种机房能耗的预测方法、装置、电子设备和存储介质 |
CN115328725A (zh) * | 2022-07-19 | 2022-11-11 | 支付宝(杭州)信息技术有限公司 | 状态监测方法、装置、存储介质及电子设备 |
-
2023
- 2023-02-16 CN CN202310122995.8A patent/CN115878432B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012185610A (ja) * | 2011-03-04 | 2012-09-27 | Nec Corp | 情報処理装置、作業重視度算出方法、および作業重視度算出プログラム |
CN102306118A (zh) * | 2011-08-31 | 2012-01-04 | 中兴通讯股份有限公司 | Android终端应用程序功耗监控的方法和装置 |
CN102999418A (zh) * | 2012-11-16 | 2013-03-27 | 广东欧珀移动通信有限公司 | 一种基于pc端的手机监测方法 |
CN103997421A (zh) * | 2014-04-22 | 2014-08-20 | 北京邮电大学 | 功耗管理方法及分级功耗网络 |
CN112002113A (zh) * | 2019-05-26 | 2020-11-27 | 苏州见微智能科技有限公司 | 一种基于NB-IoT网络的智能遥控系统及方法 |
CN111858284A (zh) * | 2020-07-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种人工智能服务器的资源监控方法和装置 |
CN114218041A (zh) * | 2021-12-13 | 2022-03-22 | 杭州趣链科技有限公司 | 动态进程监控方法、装置、设备和存储介质 |
CN114661545A (zh) * | 2022-03-02 | 2022-06-24 | 平安科技(深圳)有限公司 | 处理器资源的监控方法、装置、设备及存储介质 |
CN115328725A (zh) * | 2022-07-19 | 2022-11-11 | 支付宝(杭州)信息技术有限公司 | 状态监测方法、装置、存储介质及电子设备 |
CN115270505A (zh) * | 2022-08-16 | 2022-11-01 | 中国电信股份有限公司 | 一种机房能耗的预测方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
徐建;张琨;刘凤玉;: "基于Linux的计算系统性能监控", 南京理工大学学报(自然科学版) * |
Also Published As
Publication number | Publication date |
---|---|
CN115878432B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552761B2 (en) | Non-intrusive fine-grained power monitoring of datacenters | |
CN109309596B (zh) | 一种压力测试方法、装置及服务器 | |
US8140319B2 (en) | Method and system for predicting system performance and capacity using software module performance statistics | |
CN107924337B (zh) | 分布式存储系统中的性能监测 | |
CN109461023B (zh) | 流失用户挽回方法及装置、电子设备、存储介质 | |
CN105589783A (zh) | 应用程序卡顿问题数据获取方法及装置 | |
CN105247493A (zh) | 从静态收集的数据中标识受影响的测试 | |
CN105260393A (zh) | 信息推送方法、装置及电子设备 | |
CN111756589A (zh) | 云资源管理方法、装置、云服务器及存储介质 | |
CN107977318B (zh) | 一种Android应用程序的能耗和性能测试方法 | |
CN117785487A (zh) | 一种算力资源调度方法、装置、设备和介质 | |
US9501321B1 (en) | Weighted service requests throttling | |
CN115878432B (zh) | 一种计算系统中的进程监控方法及相关设备 | |
CN112564996A (zh) | 压力测试流量调度、控制方法、设备以及计算机可读介质 | |
CN114021733B (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
CN112036607B (zh) | 基于出力水平的风电出力波动预测方法、装置及存储介质 | |
CN111679924B (zh) | 构件化软件系统可靠性仿真方法、装置及电子设备 | |
CN106612212B (zh) | 一种业务的网络资源利用率统计方法及装置 | |
CN110865937B (zh) | 一种应用测试方法、装置和存储介质 | |
CN114071127A (zh) | 直播视频延迟的测试方法、装置、存储介质及电子设备 | |
CN111737784A (zh) | 基于数字化三维的zxmp s385子架的板卡选型配置方法及设备 | |
CN109857655A (zh) | 一种检测美术资源动态性能的方法和系统 | |
CN114579131A (zh) | 用于获取硬件性能数据的方法、设备和系统 | |
CN108073502B (zh) | 一种测试方法及其系统 | |
CN107450968B (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 |