CN114281545B - 基于cpu资源与图像模型时延关系的资源分配方法 - Google Patents
基于cpu资源与图像模型时延关系的资源分配方法 Download PDFInfo
- Publication number
- CN114281545B CN114281545B CN202111618376.5A CN202111618376A CN114281545B CN 114281545 B CN114281545 B CN 114281545B CN 202111618376 A CN202111618376 A CN 202111618376A CN 114281545 B CN114281545 B CN 114281545B
- Authority
- CN
- China
- Prior art keywords
- module
- image model
- cpu
- name
- 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.)
- Active
Links
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
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于CPU资源与图像模型时延关系的资源分配方法,目的是减少CPU资源浪费,降低图像任务队列处理时延。技术方案是构建由接收端口,图像模型模块,测试控制模块,测试模块,监控模块,函数拟合模块,调度模块组成的基于CPU资源与图像模型时延关系的资源分配系统;资源分配系统各模块相互配合,对N个任务需求中的图像模型进行测试,得出N个拟合函数;调度模块N个拟合函数及N个任务请求,按照任务请求的到达顺序,将CPU各个核的空闲资源分配给N个任务。采用本发明能够减少任务过多时CPU处理图像任务队列的总时延,减少CPU资源浪费,改善CPU并行处理任务的能力,提高计算机综合效率。
Description
技术领域
本发明涉及计算机资源分配技术领域,尤其涉及一种基于CPU资源与图像模型时延关系的资源分配方法。
背景技术
近年来随着计算机技术的广泛应用,计算机图形学借助神经网络在图像识别、图像分类、图像切割等应用场景取得了显著的突破,通过图像处理,计算机能够完成对周围环境的感知,并将目标从环境中剥离出来,这能够解决无人驾驶,工业生产等多个领域中存在的特征识别难题,然而由于图像任务的计算量较大,在摄像头采集到图像后无法将其放在本地的客户端上处理,目前被广泛接收的方式为上传到服务器端进行图像处理。可以预见的是,未来图像处理技术将在越来越多的领域得到应用,而服务器收到图像处理的任务请求也将越来越多。
另一方面,计算机系统内置的CPU资源分配算法倾向于在资源紧张的情况下暂停一些优先级低的任务进程,将过多计算资源分配给优先级高的进程,这导致资源存在浪费现象,且任务队列处理的时间过长,用户体验很差。
目前存在的算法中,有先到先服务(FCFS)算法,最短作业优先(SJF)算法等经典方法。这些经典算法需要任务请求附带预估的资源需求的数值(预估的往往是不准确的,用户为了占用多的资源,一般会预估高于任务实际需要的资源),它们根据任务的资源需求将CPU的计算资源分配给不同的任务。先来先服务(FCFS)方法是按照任务请求到达的先后顺序,依次将单个CPU核的部分计算资源按任务的资源需求分配给任务请求。最短作业优先(SJF)调度算法是先将任务请求按照资源需求的多少排序(CPU资源要求越少的任务请求优先级越高)再将单个CPU核的部分计算资源按任务的资源需求分配给任务请求。
然而这些算法只根据任务请求中的资源需求来进行分配决策,当某个任务请求谎报资源需求时,会造成CPU资源的空闲以及后面任务的堆积,同时由于图像模型对资源的利用效率存在边际递减的现象,图像模型处理图像任务的效率与CPU资源的关系是非线性的,随着分配的CPU资源越多,图像模型处理图像任务的效率提升越慢。
另一方面,由于任务请求只能得到单个CPU核的计算资源,当任务的资源需求过高而没有单个CPU核能够满足要求时,这样的大任务有可能很长时间得不到满足要求的CPU核而等待过长的时间,同样也会造成后面任务的堆积,使得任务队列的处理时延增加。
因此,考虑到图像模型处理图像任务的效率与CPU资源的关系以及任务请求中资源需求过高的情况,研究既能减少CPU资源空闲浪费,又能提高CPU并行处理任务的能力,还能降低任务队列的处理时延的资源分配方法具有重要的理论和实际意义。
发明内容
本发明要解决的技术问题是在满足图像任务时延要求的前提下,减少CPU资源浪费,改善CPU并行处理任务的能力,降低图像任务队列的处理时延,提高计算机综合效率。
本发明包括以下步骤:
第一步,构建基于CPU资源与图像模型时延关系的资源分配系统。
基于CPU资源与图像模型时延关系的资源分配系统由接收端口,图像模型模块,测试控制模块,测试模块,监控模块,函数拟合模块,调度模块组成。
接收端口接收用户输入的N个任务请求(这N个任务请求构成图像任务队列,第n个任务请求包括使用模型名称Mn、工作量Tn、时延要求Dn,n为1~N的正整数),并依次向给调度模块和图像模型模块发送N个任务请求。
图像模型模块与接收端口、测试模块、测试控制模块相连,图像模型模块中包含常见的图像模型的数据,如:xception71_imagenet、resnet50_vd_animals、mobilenet_v2_imagenet、alexnet_imagenet、se_resnext50_32x4d_imagenet、darknet53_imagenet,(这些模型均来自https://www.paddlepaddle.org.cn/hublist,版本随模型更新而更新),每个模型会在系统初始化的时候,生成对应的测试区间和常量an(测试区间为图像模型可用的CPU资源上限的取值范围,常数an为图像模型可用的CPU资源上限迭代时的变化量)。图像模型模块从接收端口接收第n个任务请求时,检索图像模型模块内部是否存在与模型名称Mn相同的图像模型,若存在,则将名称为Mn的图像模型数据发送给测试模块,同时将名称为Mn的图像模型对应的测试区间及an发送给测试控制模块。
测试控制模块与图像模型模块、测试模块相连,测试控制模块从图像模型模块接收测试区间及an,计算出I个名称为Mn的模型可用的CPU资源上限I为正整数。测试控制模块第i次从测试模块接收名称为Mn的图像模型的CPU资源分配请求时,将发送给测试模块。
测试模块与测试控制模块、图像模型模块、监控模块相连。测试模块从图像模型模块接收名称为Mn的模型数据,向测试控制模块发送I次名称为Mn的模型的CPU资源分配请求后,根据接收到的 设置I次名称为Mn的模型可用的CPU资源上限,并调用名称为Mn的图像模型在不同的上限条件下完成相同的图像任务(令此图像任务的工作量为),以供监控模块收集完成时延
监控模块与测试模块、函数拟合模块相连,监控模块负责监测测试模块中名称为Mn的图像模型的运行情况,将名称为Mn的模型第i次处理图像任务的时延及作为二元组保存在名称为Mn的模型的时延文件CSVn中,CSVn中共有I个二元组。
函数拟合模块与监控模块、调度模块相连,函数拟合模块从监控模块接收CSVn,将CSVn中的I个二元组中的数值通过最小二乘法拟合出名称Mn的图像模型的拟合函数yn=Fn(x),并将拟合函数发送给调度模块,(函数Fn(x)表示任务处理时延yn与名称为Mn的模型可用的CPU资源上限x之间的关系)。
调度模块与接收端口、函数拟合模块及待调度的CPU相连,调度模块从接收端口接收N个任务请求,从函数拟合模块接收N个任务请求中图像模型的效率函数y1,...,yn,...,yN,基于拟合函数给N个任务请求分配对应CPU资源。
第二步,运行基于CPU资源与图像模型时延关系的资源分配系统,对N个任务需求中的图像模型进行测试,得出N个拟合函数。
2.2接收端口接收用户输入的N个任务请求,将N个任务请求缓存;N为正整数。
2.3令变量n=1;
2.4接收端口将第n个任务请求(包括:使用模型名称Mn、工作量Tn、时延要求Dn)转发给图像模型模块和调度模块,调度模块缓存第n个任务请求。例如,第1个任务请求包括:模型名称M1为xception71_imagenet、工作量T1为100张待分配的图片、时延要求D1为2秒。
2.5图像模型模块从接收端口接收第n个任务请求,根据Mn检查图像模型模块内是否有名称为Mn的图像模型,如果有,则将名称为Mn的图像模型的数据发送给测试模块,同时将测试区间及an发送给测试控制模块,转2.6;否则显示“任务请求错误”,令n=n+1,转2.4。
2.6测试模块使用cpufrequtils工具包(https://www.kernel.org/doc/Documentation/cpu-freq/)关闭CPU的睿频功能。
2.7测试模块从图像模型模块接收名称为Mn的图像模型数据。
2.9测试模块、测试控制模块及监控模块协同工作,对名称为Mn的图像模型能够使用的CPU资源设置上限,并进行I次调整,同时使用图像模型在I个不同的上限时完成预设的图像任务,监控模块记录名称为Mn的图像模型完成图像任务的时延方法如下:
2.9.1令i=1;
2.9.2测试模块第i次向测试控制模块发送分配请求。
2.9.5测试模块通过docker容器的cgroups工具(Control groups,https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cgroups.html,版本号为v1)将名称为Mn的图像模型可用CPU资源的上限设置成如表示名称为Mn的图像模型在每个CPU调度周期内能够使用该周期一半时间进行计算(在调度周期内,所有并行的程序均能够按比例使用一段时间的CPU)。
2.9.6测试模块使用图像模型完成图像任务;同时监控模块通过docker Stats命令(https://docs.docker.com/engine/reference/commandline/stats/)查看测试模块中图像模型的运行情况,并将图像模型第i次完成图像任务的时延以及此时图像模型可用CPU资源的上限作为第i个二元组记录到名称为Mn的图像模型的时延文件CSVn中。
2.10监控模块将文件CSVn发送给函数拟合模块。
2.11函数拟合模块从监控模块接收CSVn,根据CSVn中的I个二元组进行函数拟合。函数拟合模块调用scipy库(https://www.scipy.org/)中的curve_fit函数拟合出名称为Mn的图像模型的拟合函数,拟合原理为最小二乘法(通过最小化误差的平方和寻找数据的最佳函数匹配)。第n个任务请求中名称为Mn的图像模型的拟合函数为
bn,dn,sn,rn为最小二乘法拟合得出的名称为Mn的图像模型的拟合函数参数,yn表示名称为Mn的图像模型处理的时延,x为名称为Mn的图像模型可用的CPU资源上限。
2.12函数拟合模块将拟合函数yn发送至调度模块缓存。
2.13若n<N,则令n=n+1,转步骤2.4;若n≥N,表示N个任务要求中的函数拟合完毕,得到N个拟合函数即y1,...,yn,...,yN,转第三步。
第三步,调度模块根据接收到的N个拟合函数及N个任务请求,按照任务请求的到达顺序,将CPU各个核的空闲资源分配给N个任务请求,方法如下:
步骤3.1调度模块从函数拟合模块接收N个拟合函数;
步骤3.2令n=1;
步骤3.3调度模块根据yn=Fn(x)计算出满足第n个任务处理时延要求Dn时,需要分配给名称为Mn的图像模型的CPU资源量Cn,
步骤3.4调度模块通过排序的方法查找出CPU中空闲资源最多的CPU核,令CPU中存在J个CPU核,令第j个CPU核是空闲资源最多的CPU核,第j个CPU核空闲的CPU资源用Vj表示(j为1~J内的正整数)。
步骤3.5将第j个CPU核中空闲的CPU资源Vj与名称为Mn的图像模型执行图像任务需要的CPU资源Cn进行比较,若Vj≥Cn,转步骤3.6;若Vj<Cn,表示不存在单个CPU核满足第n个任务的需求,转步骤3.7。
步骤3.6记录第n个分配决策Kn,Kn用三元组(j,n,Cn)表示,其中(j,n,Cn)表示将第j个CPU核的资源分配给第n个任务,分配的资源量为Cn。转3.8。
步骤3.7将第n个任务均匀地放置在J个CPU核上执行,每个CPU核分配给第n个任务的CPU资源量为记录第n个分配决策Kn为all表示J个CPU核。表示J个CPU核都拿出的资源来执行第n个任务,转步骤3.8。
步骤3.8令n=n+1,Vj=Vj-Cn,如果n≤N,转步骤3.3;如果n>N,转步骤3.9;
步骤3.9完成N个任务请求的分配决策,得到K1,K2,...,KN,即将N个任务请求依次发送到相应CPU核中执行的决策。
采用本发明能够取得下列有益效果:
1.本发明提供了一种基于CPU资源与图像模型时延关系的资源分配方法,本发明第二步能够根据任务请求中调用的图像模型进行测试,得出图像模型的拟合函数;第三步根据图像模型的拟合函数,在满足任务时延要求下,得到了将CPU资源分配给各个任务的决策。
2.本发明步骤3.3步得到的需要分配给名称为Mn的图像模型的CPU资源量Cn是调度模块根据拟合函数计算出的,恰好能满足第n个任务处理时延要求Dn的资源需求,不是任务请求中用户自己预估的,这样计算出的CPU资源量综合考虑了图像模型处理图像任务的效率与CPU资源的关系以及任务请求中资源需求过高的特殊情况,既能满足任务执行资源需求,又不会造成CPU资源浪费。
3.本发明步骤3.7将第n个任务均匀地放置在J个CPU核上执行,使得先到的任务就算资源需求大于单个CPU核的剩余资源,也能及时执行,避免了背景技术所述方法大任务很长时间不能运行的问题,能够减少任务过多时,CPU处理图像任务队列的总时延,改善CPU并行处理任务的能力,提高计算机综合效率。
4.本发明基于docker的容器技术,能够便于服务器对图像模型的打开和关闭。
附图说明
图1为本发明的总体流程图;
图2为本发明第一步构建的基于图像模型效率关系的调度系统的逻辑结构图;
图3为本发明与经典的CPU资源分配方法处理任务队列总时延的对比图
图4为本发明与经典的CPU资源分配方法同时处理任务的数量对比图。
具体实施方式
如图1所示,本发明包括以下步骤:
第一步,构建基于CPU资源与图像模型时延关系的资源分配系统。
基于CPU资源与图像模型时延关系的资源分配系统如图2所示,由接收端口,图像模型模块,测试控制模块,测试模块,监控模块,函数拟合模块,调度模块组成。
接收端口接收用户输入的N个任务请求(第n个任务请求包括使用模型名称Mn、工作量Tn、时延要求Dn,n为1~N的正整数),并依次向给调度模块和图像模型模块发送N个任务请求。
图像模型模块与接收端口、测试模块、测试控制模块相连,图像模型模块中包含常见的图像模型的数据,如:xception71_imagenet、resnet50_vd_animals、mobilenet_v2_imagenet、alexnet_imagenet、se_resnext50_32x4d_imagenet、darknet53_imagenet,(这些模型均来自https://www.paddlepaddle.org.cn/hublist,版本随模型更新而更新),每个模型会在系统初始化的时候,生成对应的测试区间和常量an(测试区间为图像模型可用的CPU资源上限的取值范围,常数an为图像模型可用的CPU资源上限迭代时的变化量)。图像模型模块从接收端口接收第n个任务请求时,检索图像模型模块内部是否存在与模型名称Mn相同的图像模型,若存在,则将名称为Mn的图像模型数据发送给测试模块,同时将名称为Mn的图像模型对应的测试区间及an发送给测试控制模块。
测试控制模块与图像模型模块、测试模块相连,测试控制模块从图像模型模块接收测试区间及an,计算出I个名称为Mn的模型可用的CPU资源上限I为正整数。测试控制模块第i次从测试模块接收名称为Mn的图像模型的CPU资源分配请求时,将发送给测试模块。
测试模块与测试控制模块、图像模型模块、监控模块相连。测试模块从图像模型模块接收名称为Mn的模型数据,向测试控制模块发送I次名称为Mn的模型的CPU资源分配请求后,根据接收到的 设置I次名称为Mn的模型可用的CPU资源上限,并调用名称为Mn的图像模型在不同的上限条件下完成相同的图像任务(令此图像任务的工作量为),以供监控模块收集完成时延
监控模块与测试模块、函数拟合模块相连,监控模块负责监测测试模块中名称为Mn的图像模型的运行情况,将名称为Mn的模型第i次处理图像任务的时延及作为二元组保存在名称为Mn的模型的时延文件CSVn中,CSVn中共有I个二元组。
函数拟合模块与监控模块、调度模块相连,函数拟合模块从监控模块接收CSVn,将CSVn中的I个二元组中的数值通过最小二乘法拟合出名称Mn的图像模型的拟合函数yn=Fn(x),并将拟合函数发送给调度模块。
调度模块与接收端口、函数拟合模块及待调度的CPU相连,调度模块从接收端口接收N个任务请求,从函数拟合模块接收N个任务请求中图像模型的效率函数y1,...,yn,...,yN,基于拟合函数给N个任务请求分配对应CPU资源。
第二步,运行基于CPU资源与图像模型时延关系的资源分配系统,对N个任务需求中的图像模型进行测试,得出N个拟合函数。
表1
模型名称Mn为xception71_imagenet的测试区间为[40%,100%],an为3%;模型名称Mn为resnet50_vd_animals的测试区间为[20%,100%],an为4%;模型名称Mn为mobilenet_v2_imagenet的测试区间为[20%,100%],an为4%;模型名称Mn为alexnet_imagenet的测试区间为[10%,100%],an为5%;模型名称Mn为se_resnext50_32x4d_imagenet的测试区间为[20%,100%],an为4%;模型名称Mn为darknet53_imagenet的测试区间 为[40%,100%],an为3%。实际使用本发明时,测试模块中各模型的顺序与表1中的顺序可以不同。
2.2接收端口接收用户输入的N个任务请求,将N个任务请求缓存;N为正整数。
2.3令变量n=1;
2.4接收端口将第n个任务请求(包括:使用模型名称Mn、工作量Tn、时延要求Dn)转发给图像模型模块和调度模块,调度模块缓存第n个任务请求。例如,第1个任务请求包括:模型名称M1为xception71_imagenet、工作量T1为100张待分配的图片、时延要求D1为2秒。
2.5图像模型模块从接收端口接收第n个任务请求,根据Mn检查图像模型模块内是否有名称为Mn的图像模型,如果有,则将名称为Mn的图像模型的数据发送给测试模块,同时将测试区间 及an发送给测试控制模块,转2.6;否则显示“任务请求错误”,令n=n+1,转2.4。
2.6测试模块使用cpufrequtils工具包(https://www.kernel.org/doc/Documentation/cpu-freq/)关闭CPU的睿频功能。
2.7测试模块从图像模型模块接收名称为Mn的图像模型数据。
2.9测试模块、测试控制模块及监控模块协同工作,对名称为Mn的图像模型能够使用的CPU资源设置上限,并进行I次调整,同时使用图像模型在I个不同的上限时完成预设的图像任务,监控模块记录名称为Mn的图像模型完成图像任务的时延方法如下:
2.9.1令i=1;
2.9.2测试模块第i次向测试控制模块发送分配请求。
2.9.5测试模块通过docker容器的cgroups工具(Control groups,https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cgroups.html,版本号为v1)将名称为Mn的图像模型可用CPU资源的上限设置成如表示名称为Mn的图像模型在每个CPU调度周期内能够使用该周期一半时间进行计算(在调度周期内,所有并行的程序均能够按比例使用一段时间的CPU)。
2.9.6测试模块使用图像模型完成图像任务;同时监控模块通过docker Stats命令(https://docs.docker.com/engine/reference/commandline/stats/)查看测试模块中图像模型的运行情况,并将图像模型第i次完成图像任务的时延以及此时图像模型可用CPU资源的上限作为第i个二元组记录到名称为Mn的图像模型的时延文件CSVn中。
2.10监控模块将文件CSVn发送给函数拟合模块。
2.11函数拟合模块从监控模块接收CSVn,根据CSVn中的I个二元组进行函数拟合。函数拟合模块调用scipy库(https://www.scipy.org/)中的curve_fit函数拟合出名称为Mn的图像模型的拟合函数,拟合原理为最小二乘法(通过最小化误差的平方和寻找数据的最佳函数匹配)。第n个任务请求中名称为Mn的图像模型的拟合函数为
bn,dn,sn,rn为最小二乘法拟合得出的名称为Mn的图像模型的拟合函数参数,yn表示名称为Mn的图像模型处理的时延,x为名称为Mn的图像模型可用的CPU资源上限。
2.12函数拟合模块将拟合函数yn发送至调度模块缓存。
2.13若n<N,则令n=n+1,转步骤2.4;若n≥N,表示N个任务要求中的函数拟合完毕,得到N个拟合函数即y1,...,yn,...,yN,转第三步。
第三步,调度模块根据接收到的N个拟合函数及N个任务请求,按照任务请求的到达顺序,将CPU各个核的空闲资源分配给N个任务,方法如下:
步骤3.1调度模块从函数拟合模块接收N个拟合函数;
步骤3.2令n=1;
步骤3.3调度模块根据yn=Fn(x)计算出满足第n个任务处理时延要求Dn时,需要分配给名称为Mn的图像模型的CPU资源量Cn,
步骤3.4调度模块通过排序的方法查找出CPU中空闲资源最多的CPU核,令CPU中存在J个CPU核,令第j个CPU核是空闲资源最多的CPU核,第j个CPU核空闲的CPU资源用Vj表示(j为1~J内的正整数)。
步骤3.5将第j个CPU核中空闲的CPU资源Vj与名称为Mn的图像模型执行图像任务需要的CPU资源Cn进行比较,若Vj≥Cn,转步骤3.6;若Vj<Cn,表示不存在单个CPU核满足第n个任务的需求,转步骤3.7。
步骤3.6记录第n个分配决策Kn,Kn用三元组(j,n,Cn)表示,其中(j,n,Cn)表示将第j个CPU核的资源分配给第n个任务,分配的资源量为Cn。转3.8。
步骤3.7将第n个任务均匀地放置在J个CPU核上执行,每个CPU核分配给第n个任务的CPU资源量为记录第n个分配决策Kn为all表示J个CPU核。表示J个CPU核都拿出的资源来执行第n个任务,转步骤3.8。
步骤3.8令n=n+1,Vj=Vj-Cn,如果n≤N,转步骤3.3;如果n>N,转步骤3.9;
步骤3.9完成N个任务请求的分配决策,得到K1,K2,...,KN,即将N个任务请求依次发送到相应CPU核中执行的决策。
为了验证本发明中的任务调度方法的有效性,将本发明与经典的CPU资源分配方法进行对比,说明本发明中的资源分配方法在CPU资源利用上具有优势,具体为:
在确保任务请求的时延要求得到满足的前提下,CPU同时运行的任务数量会增多,同时CPU处理任务队列的总时延能够更低。
与本发明对比的任务调度方法:
第一种,先来先服务(FCFS)方法是按照任务请求到达的先后顺序,按照任务请求中的资源要求将单个CPU核的部分空闲计算资源分配给任务;
第二种,最短作业优先(SJF)算法是先对任务请求中的资源要求的多少排序,CPU资源要求越少的任务请求优先级越高,随后按资源要求将空闲的CPU资源分配给任务。
在相同的硬件环境下对三种分配方法进行仿真实验,仿真实验的硬件环境为Linux系统-ubuntu,处理器为Intel Core i7-9700,内存16GB。
图3为任务数N从100变化到200时本发明与上述资源分配方法处理任务队列的总时延对比图,此时任务数量过多需要CPU分批处理,其中横坐标表示CPU总共处理的任务数量,纵坐标表示处理这个任务队列的总时延。从图3中可以看出本发明中CPU处理任务的总时延明显低于先来先服务(FCFS)方法和最短作业优先(SJF)算法,说明本发明中的资源分配方法在满足任务时延要求的情况下,能够降低CPU处理任务队列的总时延。
图4为在本发明与上述资源分配方法同时处理任务的数量对比,横坐标表示不同的资源分配方法,纵坐标表示CPU同时处理任务的数量,可以看出本发明中的资源分配方法在满足任务时延要求的情况下,CPU同时处理任务的数量更高,即CPU并行处理的能力得到了提高。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种基于CPU资源与图像模型时延关系的资源分配方法,其特征在于包括以下步骤:
第一步,构建基于CPU资源与图像模型时延关系的资源分配系统;
基于CPU资源与图像模型时延关系的资源分配系统由接收端口,图像模型模块,测试控制模块,测试模块,监控模块,函数拟合模块,调度模块组成;
接收端口接收用户输入的N个任务请求,第n个任务请求包括使用模型名称Mn、工作量Tn、时延要求Dn,n为1~N的正整数,并依次向调度模块和图像模型模块发送N个任务请求;
图像模型模块与接收端口、测试模块、测试控制模块相连,图像模型模块中包含图像模型的数据,每个模型会在系统初始化的时候,生成对应的测试区间和常量an,测试区间为图像模型可用的CPU资源上限的取值范围,常数an为图像模型可用的CPU资源上限迭代时的变化量;图像模型模块从接收端口接收第n个任务请求时,检索图像模型模块内部是否存在与模型名称Mn相同的图像模型,若存在,则将名称为Mn的图像模型数据发送给测试模块,同时将名称为Mn的图像模型对应的测试区间及an发送给测试控制模块;
测试控制模块与图像模型模块、测试模块相连,测试控制模块从图像模型模块接收测试区间及an,计算出I个名称为Mn的模型可用的CPU资源上限I为正整数;测试控制模块第i次从测试模块接收名称为Mn的图像模型的CPU资源分配请求时,将发送给测试模块;
测试模块与测试控制模块、图像模型模块、监控模块相连;测试模块从图像模型模块接收名称为Mn的模型数据,向测试控制模块发送I次名称为Mn的模型的CPU资源分配请求后,根据接收到的 设置I次名称为Mn的模型可用的CPU资源上限,并调用名称为Mn的图像模型在不同的上限条件下完成相同的图像任务;
监控模块与测试模块、函数拟合模块相连,监控模块负责监测测试模块中名称为Mn的图像模型的运行情况,将名称为Mn的模型第i次处理图像任务的时延及作为二元组保存在名称为Mn的模型的时延文件CSVn中,CSVn中共有I个二元组;
函数拟合模块与监控模块、调度模块相连,函数拟合模块从监控模块接收CSVn,将CSVn中的I个二元组中的数值通过最小二乘法拟合出名称Mn的图像模型的拟合函数yn=Fn(x),并将拟合函数发送给调度模块,函数Fn(x)表示任务处理时延yn与名称为Mn的模型可用的CPU资源上限x之间的关系;
调度模块与接收端口、函数拟合模块及待调度的CPU相连,调度模块从接收端口接收N个任务请求,从函数拟合模块接收N个任务请求中图像模型的效率函数y1,...,yn,...,yN,基于拟合函数给N个任务请求分配对应CPU资源;
第二步,运行基于CPU资源与图像模型时延关系的资源分配系统,对N个任务需求中的图像模型进行测试,得出N个拟合函数;
2.2接收端口接收用户输入的N个任务请求,将N个任务请求缓存;N为正整数;
2.3令变量n=1;
2.4接收端口将第n个任务请求转发给图像模型模块和调度模块,调度模块缓存第n个任务请求;
2.5图像模型模块从接收端口接收第n个任务请求,根据Mn检查图像模型模块内是否有名称为Mn的图像模型,如果有,则将名称为Mn的图像模型的数据发送给测试模块,同时将测试区间及an发送给测试控制模块,转2.6;否则显示“任务请求错误”,令n=n+1,转2.4;
2.6测试模块关闭CPU的睿频功能;
2.7测试模块从图像模型模块接收名称为Mn的图像模型数据;
2.9测试模块、测试控制模块及监控模块协同工作,对名称为Mn的图像模型能够使用的CPU资源设置上限,并进行I次调整,同时使用图像模型在I个不同的上限时完成预设的图像任务,监控模块记录名称为Mn的图像模型完成图像任务的时延方法如下:
2.9.1令i=1;
2.9.2测试模块第i次向测试控制模块发送分配请求;
2.9.6测试模块使用图像模型完成图像任务;同时监控模块查看测试模块中图像模型的运行情况,并将图像模型第i次完成图像任务的时延以及此时图像模型可用CPU资源的上限作为第i个二元组记录到名称为Mn的图像模型的时延文件CSVn中;
2.10监控模块将文件CSVn发送给函数拟合模块;
2.11函数拟合模块从监控模块接收CSVn,根据CSVn中的I个二元组进行函数拟合,拟合出名称为Mn的图像模型的拟合函数,第n个任务请求中名称为Mn的图像模型的拟合函数为
bn,dn,sn,rn为最小二乘法拟合得出的名称为Mn的图像模型的拟合函数参数,yn表示名称为Mn的图像模型处理的时延,x为名称为Mn的图像模型可用的CPU资源上限;
2.12函数拟合模块将拟合函数yn发送至调度模块缓存;
2.13若n<N,则令n=n+1,转步骤2.4;若n≥N,表示N个任务要求中的函数拟合完毕,得到N个拟合函数即y1,...,yn,...,yN,转第三步;
第三步,调度模块根据接收到的N个拟合函数及N个任务请求,按照任务请求的到达顺序,将CPU各个核的空闲资源分配给N个任务,方法如下:
步骤3.1调度模块从函数拟合模块接收N个拟合函数;
步骤3.2令n=1;
步骤3.3调度模块根据yn=Fn(x)计算出满足第n个任务处理时延要求Dn时,需要分配给名称为Mn的图像模型的CPU资源量Cn,
步骤3.4调度模块查找出CPU中空闲资源最多的CPU核,令CPU中存在J个CPU核,令第j个CPU核是空闲资源最多的CPU核,第j个CPU核空闲的CPU资源用Vj表示,j为1~J内的正整数;
步骤3.5将第j个CPU核中空闲的CPU资源Vj与名称为Mn的图像模型执行图像任务需要的CPU资源Cn进行比较,若Vj≥Cn,转步骤3.6;若Vj<Cn,表示不存在单个CPU核满足第n个任务的需求,转步骤3.7;
步骤3.6记录第n个分配决策Kn,Kn用三元组(j,n,Cn)表示,其中(j,n,Cn)表示将第j个CPU核的资源分配给第n个任务,分配的资源量为Cn;转3.8;
步骤3.7将第n个任务均匀地放置在J个CPU核上执行,每个CPU核分配给第n个任务的CPU资源量为记录第n个分配决策Kn为all表示J个CPU核;表示J个CPU核都拿出的资源来执行第n个任务,转步骤3.8;
步骤3.8令n=n+1,Vj=Vj-Cn,如果n≤N,转步骤3.3;如果n>N,转步骤3.9;
步骤3.9完成N个任务请求的分配决策,得到K1,K2,...,KN,即将N个任务请求依次发送到相应CPU核中执行的决策。
2.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于所述图像模型模块中包含的图像模型包括:xception71_imagenet、resnet50_vd_animals、mobilenet_v2_imagenet、alexnet_imagenet、se_resnext50_32x4d_imagenet、darknet53_imagenet。
4.如权利要求3所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于所述及an的具体值与图像模型模块中图像模型的种类有关,模型名称Mn为xception71_imagenet的测试区间为[40%,100%],an为3%;模型名称Mn为resnet50_vd_animals的测试区间为[20%,100%],an为4%;模型名称Mn为mobilenet_v2_imagenet的测试区间为[20%,100%],an为4%;模型名称Mn为alexnet_imagenet的测试区间为[10%,100%],an为5%;模型名称Mn为se_resnext50_32x4d_imagenet的测试区间为[20%,100%],an为4%;模型名称Mn为darknet53_imagenet的测试区间为[40%,100%],an为3%。
5.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.6步所述测试模块使用cpufrequtils工具包关闭CPU的睿频功能。
7.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.9.6步所述监控模块通过docker Stats命令查看测试模块中图像模型的运行情况。
8.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.11步所述函数拟合模块调用scipy库中的curve_fit函数拟合出名称为Mn的图像模型的拟合函数。
9.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于3.4步所述调度模块通过排序的方法查找出CPU中空闲资源最多的CPU核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111618376.5A CN114281545B (zh) | 2021-12-20 | 2021-12-20 | 基于cpu资源与图像模型时延关系的资源分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111618376.5A CN114281545B (zh) | 2021-12-20 | 2021-12-20 | 基于cpu资源与图像模型时延关系的资源分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281545A CN114281545A (zh) | 2022-04-05 |
CN114281545B true CN114281545B (zh) | 2022-07-12 |
Family
ID=80876510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111618376.5A Active CN114281545B (zh) | 2021-12-20 | 2021-12-20 | 基于cpu资源与图像模型时延关系的资源分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281545B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和系统 |
JP2018139064A (ja) * | 2017-02-24 | 2018-09-06 | 日本電信電話株式会社 | 仮想計算機システムおよびそのリソース割当て方法 |
CN108572875A (zh) * | 2018-04-28 | 2018-09-25 | 辽宁工程技术大学 | 资源分配方法、装置及系统 |
CN112269650A (zh) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备和存储介质 |
CN113656166A (zh) * | 2021-09-02 | 2021-11-16 | 上海联影医疗科技股份有限公司 | 一种任务处理系统及其计算资源分配方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162856A (zh) * | 2020-09-23 | 2021-01-01 | 武汉联影医疗科技有限公司 | Gpu虚拟资源的分配方法、装置、计算机设备和存储介质 |
-
2021
- 2021-12-20 CN CN202111618376.5A patent/CN114281545B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345501A (zh) * | 2017-01-24 | 2018-07-31 | 全球能源互联网研究院 | 一种分布式资源调度方法和系统 |
JP2018139064A (ja) * | 2017-02-24 | 2018-09-06 | 日本電信電話株式会社 | 仮想計算機システムおよびそのリソース割当て方法 |
CN108572875A (zh) * | 2018-04-28 | 2018-09-25 | 辽宁工程技术大学 | 资源分配方法、装置及系统 |
CN112269650A (zh) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备和存储介质 |
CN113656166A (zh) * | 2021-09-02 | 2021-11-16 | 上海联影医疗科技股份有限公司 | 一种任务处理系统及其计算资源分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114281545A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399222B (zh) | Gpu集群深度学习任务并行化方法、装置及电子设备 | |
CN110737529B (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
CN107888669B (zh) | 一种基于深度学习神经网络的大规模资源调度系统及方法 | |
CN111431961B (zh) | 一种云数据中心的节能任务分配方法 | |
CN110321222B (zh) | 基于决策树预测的数据并行作业资源分配方法 | |
CN107193652B (zh) | 容器云环境中流数据处理系统的弹性资源调度方法及系统 | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
CN113055308B (zh) | 带宽调度方法、流量传输方法及相关产品 | |
CN115168027B (zh) | 一种基于深度强化学习的算力资源度量方法 | |
CN105718479A (zh) | 跨idc大数处理架构下执行策略生成方法、装置 | |
Cariño et al. | Dynamic load balancing with adaptive factoring methods in scientific applications | |
CN108132840B (zh) | 一种分布式系统中的资源调度方法及装置 | |
CN116263701A (zh) | 算力网络任务调度方法、装置、计算机设备及存储介质 | |
CN106101196B (zh) | 一种基于概率模型的云渲染平台任务调度系统 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN115904666A (zh) | 面向gpu集群的深度学习训练任务调度系统 | |
Lin et al. | A model-based approach to streamlining distributed training for asynchronous SGD | |
CN111131447A (zh) | 一种基于中介节点任务分配的负载均衡方法 | |
CN113886080A (zh) | 高性能集群任务调度方法、装置、电子设备及存储介质 | |
US20070162601A1 (en) | Method for autonomic system management using adaptive allocation of resources | |
CN114356531A (zh) | 基于K-means聚类和排队理论的边缘计算任务分类调度方法 | |
CN117909044A (zh) | 面向异构计算资源的深度强化学习协同调度方法及装置 | |
CN114281545B (zh) | 基于cpu资源与图像模型时延关系的资源分配方法 | |
CN111144701B (zh) | 一种分布式环境下etl作业调度资源分类评估的方法 | |
CN114650321A (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 |