CN114281545A - 基于cpu资源与图像模型时延关系的资源分配方法 - Google Patents

基于cpu资源与图像模型时延关系的资源分配方法 Download PDF

Info

Publication number
CN114281545A
CN114281545A CN202111618376.5A CN202111618376A CN114281545A CN 114281545 A CN114281545 A CN 114281545A CN 202111618376 A CN202111618376 A CN 202111618376A CN 114281545 A CN114281545 A CN 114281545A
Authority
CN
China
Prior art keywords
module
image model
cpu
name
image
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
Application number
CN202111618376.5A
Other languages
English (en)
Other versions
CN114281545B (zh
Inventor
张永敏
黎徽霖
黄鹏宇
吕丰
张尧学
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.)
Central South University
Original Assignee
Central South University
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 Central South University filed Critical Central South University
Priority to CN202111618376.5A priority Critical patent/CN114281545B/zh
Publication of CN114281545A publication Critical patent/CN114281545A/zh
Application granted granted Critical
Publication of CN114281545B publication Critical patent/CN114281545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于CPU资源与图像模型时延关系的资源分配方法,目的是减少CPU资源浪费,降低图像任务队列处理时延。技术方案是构建由接收端口,图像模型模块,测试控制模块,测试模块,监控模块,函数拟合模块,调度模块组成的基于CPU资源与图像模型时延关系的资源分配系统;资源分配系统各模块相互配合,对N个任务需求中的图像模型进行测试,得出N个拟合函数;调度模块N个拟合函数及N个任务请求,按照任务请求的到达顺序,将CPU各个核的空闲资源分配给N个任务。采用本发明能够减少任务过多时CPU处理图像任务队列的总时延,减少CPU资源浪费,改善CPU并行处理任务的能力,提高计算机综合效率。

Description

基于CPU资源与图像模型时延关系的资源分配方法
技术领域
本发明涉及计算机资源分配技术领域,尤其涉及一种基于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,版本随模型更新而更新),每个模型会在系统初始化的时候,生成对应的测试区间
Figure BDA0003420248300000031
Figure BDA0003420248300000032
和常量an(测试区间为图像模型可用的CPU资源上限的取值范围,常数an为图像模型可用的CPU资源上限迭代时的变化量)。图像模型模块从接收端口接收第n个任务请求时,检索图像模型模块内部是否存在与模型名称Mn相同的图像模型,若存在,则将名称为Mn的图像模型数据发送给测试模块,同时将名称为Mn的图像模型对应的测试区间
Figure BDA0003420248300000033
及an发送给测试控制模块。
测试控制模块与图像模型模块、测试模块相连,测试控制模块从图像模型模块接收测试区间
Figure BDA0003420248300000034
及an,计算出I个名称为Mn的模型可用的CPU资源上限
Figure BDA0003420248300000035
I为正整数。测试控制模块第i次从测试模块接收名称为Mn的图像模型的CPU资源分配请求时,将
Figure BDA0003420248300000036
发送给测试模块。
测试模块与测试控制模块、图像模型模块、监控模块相连。测试模块从图像模型模块接收名称为Mn的模型数据,向测试控制模块发送I次名称为Mn的模型的CPU资源分配请求后,根据接收到的
Figure BDA0003420248300000037
设置I次名称为Mn的模型可用的CPU资源上限,并调用名称为Mn的图像模型在不同的上限条件下完成相同的图像任务(令此图像任务的工作量为
Figure BDA0003420248300000038
),以供监控模块收集完成时延
Figure BDA0003420248300000039
监控模块与测试模块、函数拟合模块相连,监控模块负责监测测试模块中名称为Mn的图像模型的运行情况,将名称为Mn的模型第i次处理图像任务的时延
Figure BDA0003420248300000041
Figure BDA0003420248300000042
作为二元组
Figure BDA0003420248300000043
保存在名称为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.1系统初始化,生成图像模型模块中各个图像模型对应的测试区间
Figure BDA0003420248300000044
及an
Figure BDA0003420248300000045
3%≤an≤5%。
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的图像模型的数据发送给测试模块,同时将测试区间
Figure BDA0003420248300000046
Figure BDA0003420248300000047
及an发送给测试控制模块,转2.6;否则显示“任务请求错误”,令n=n+1,转2.4。
2.6测试模块使用cpufrequtils工具包(https://www.kernel.org/doc/Documentation/cpu-freq/)关闭CPU的睿频功能。
2.7测试模块从图像模型模块接收名称为Mn的图像模型数据。
2.8测试控制模块从图像模型模块中接收名称为Mn的图像模型的测试区间
Figure BDA0003420248300000051
及an
2.9测试模块、测试控制模块及监控模块协同工作,对名称为Mn的图像模型能够使用的CPU资源设置上限,并进行I次调整,同时使用图像模型在I个不同的上限时完成预设的图像任务,监控模块记录名称为Mn的图像模型完成图像任务的时延
Figure BDA0003420248300000052
方法如下:
2.9.1令i=1;
2.9.2测试模块第i次向测试控制模块发送分配请求。
2.9.3测试控制模块计算名称为Mn的图像模型在第i次测试中可用的CPU资源的上限
Figure BDA0003420248300000053
Figure BDA0003420248300000054
Figure BDA0003420248300000055
的变化范围为
Figure BDA0003420248300000056
2.9.4测试控制模块将
Figure BDA0003420248300000057
发送给测试模块;
2.9.5测试模块通过docker容器的cgroups工具(Control groups,https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cgroups.html,版本号为v1)将名称为Mn的图像模型可用CPU资源的上限设置成
Figure BDA0003420248300000058
Figure BDA0003420248300000059
表示名称为Mn的图像模型在每个CPU调度周期内能够使用该周期一半时间进行计算(在调度周期内,所有并行的程序均能够按比例使用一段时间的CPU)。
2.9.6测试模块使用图像模型完成图像任务;同时监控模块通过docker Stats命令(https://docs.docker.com/engine/reference/commandline/stats/)查看测试模块中图像模型的运行情况,并将图像模型第i次完成图像任务的时延
Figure BDA00034202483000000510
以及此时图像模型可用CPU资源的上限
Figure BDA00034202483000000511
作为第i个二元组
Figure BDA0003420248300000061
记录到名称为Mn的图像模型的时延文件CSVn中。
2.9.7如果
Figure BDA0003420248300000062
令时延总数I=i,转2.10;否则令i=i+1,转2.9.2;
2.10监控模块将文件CSVn发送给函数拟合模块。
2.11函数拟合模块从监控模块接收CSVn,根据CSVn中的I个二元组进行函数拟合。函数拟合模块调用scipy库(https://www.scipy.org/)中的curve_fit函数拟合出名称为Mn的图像模型的拟合函数,拟合原理为最小二乘法(通过最小化误差的平方和寻找数据的最佳函数匹配)。第n个任务请求中名称为Mn的图像模型的拟合函数为
Figure BDA0003420248300000063
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
Figure BDA0003420248300000064
步骤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资源量为
Figure BDA0003420248300000071
记录第n个分配决策Kn为(all,n,
Figure BDA0003420248300000072
)。all表示J个CPU核。(all,n,
Figure BDA0003420248300000073
)表示J个CPU核都拿出
Figure BDA0003420248300000074
的资源来执行第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,版本随模型更新而更新),每个模型会在系统初始化的时候,生成对应的测试区间
Figure BDA0003420248300000091
Figure BDA0003420248300000092
和常量an(测试区间为图像模型可用的CPU资源上限的取值范围,常数an为图像模型可用的CPU资源上限迭代时的变化量)。图像模型模块从接收端口接收第n个任务请求时,检索图像模型模块内部是否存在与模型名称Mn相同的图像模型,若存在,则将名称为Mn的图像模型数据发送给测试模块,同时将名称为Mn的图像模型对应的测试区间
Figure BDA0003420248300000093
及an发送给测试控制模块。
测试控制模块与图像模型模块、测试模块相连,测试控制模块从图像模型模块接收测试区间
Figure BDA0003420248300000094
及an,计算出I个名称为Mn的模型可用的CPU资源上限
Figure BDA0003420248300000095
I为正整数。测试控制模块第i次从测试模块接收名称为Mn的图像模型的CPU资源分配请求时,将
Figure BDA0003420248300000096
发送给测试模块。
测试模块与测试控制模块、图像模型模块、监控模块相连。测试模块从图像模型模块接收名称为Mn的模型数据,向测试控制模块发送I次名称为Mn的模型的CPU资源分配请求后,根据接收到的
Figure BDA0003420248300000097
设置I次名称为Mn的模型可用的CPU资源上限,并调用名称为Mn的图像模型在不同的上限条件下完成相同的图像任务(令此图像任务的工作量为
Figure BDA0003420248300000098
),以供监控模块收集完成时延
Figure BDA0003420248300000099
监控模块与测试模块、函数拟合模块相连,监控模块负责监测测试模块中名称为Mn的图像模型的运行情况,将名称为Mn的模型第i次处理图像任务的时延
Figure BDA00034202483000000910
Figure BDA00034202483000000911
作为二元组
Figure BDA00034202483000000912
保存在名称为Mn的模型的时延文件CSVn中,CSVn中共有I个二元组。
函数拟合模块与监控模块、调度模块相连,函数拟合模块从监控模块接收CSVn,将CSVn中的I个二元组中的数值通过最小二乘法拟合出名称Mn的图像模型的拟合函数yn=Fn(x),并将拟合函数发送给调度模块。
调度模块与接收端口、函数拟合模块及待调度的CPU相连,调度模块从接收端口接收N个任务请求,从函数拟合模块接收N个任务请求中图像模型的效率函数y1,…,yn,…,yN,基于拟合函数给N个任务请求分配对应CPU资源。
第二步,运行基于CPU资源与图像模型时延关系的资源分配系统,对N个任务需求中的图像模型进行测试,得出N个拟合函数。
2.1系统初始化,生成图像模型模块中各个图像模型对应的测试区间
Figure BDA0003420248300000101
及an
Figure BDA0003420248300000102
3%≤an≤5%,
Figure BDA0003420248300000103
及an的初始化的具体值与图像模型模块中图像模型的种类有关,具体数值如表1所示:
Figure BDA0003420248300000104
表1
模型名称Mn为xception71_imagenet的测试区间
Figure BDA0003420248300000105
为[40%,100%],an为3%;模型名称Mn为resnet50_vd_animals的测试区间
Figure BDA0003420248300000106
为[20%,100%],an为4%;模型名称Mn为mobilenet_v2_imagenet的测试区间
Figure BDA0003420248300000111
为[20%,100%],an为4%;模型名称Mn为alexnet_imagenet的测试区间
Figure BDA0003420248300000112
为[10%,100%],an为5%;模型名称Mn为se_resnext50_32x4d_imagenet的测试区间
Figure BDA0003420248300000113
为[20%,100%],an为4%;模型名称Mn为darknet53_imagenet的测试区间
Figure BDA0003420248300000114
为[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的图像模型的数据发送给测试模块,同时将测试区间
Figure BDA0003420248300000115
Figure BDA0003420248300000116
及an发送给测试控制模块,转2.6;否则显示“任务请求错误”,令n=n+1,转2.4。
2.6测试模块使用cpufrequtils工具包(https://www.kernel.org/doc/Documentation/cpu-freq/)关闭CPU的睿频功能。
2.7测试模块从图像模型模块接收名称为Mn的图像模型数据。
2.8测试控制模块从图像模型模块中接收名称为Mn的图像模型的测试区间
Figure BDA0003420248300000117
及an
2.9测试模块、测试控制模块及监控模块协同工作,对名称为Mn的图像模型能够使用的CPU资源设置上限,并进行I次调整,同时使用图像模型在I个不同的上限时完成预设的图像任务,监控模块记录名称为Mn的图像模型完成图像任务的时延
Figure BDA0003420248300000121
方法如下:
2.9.1令i=1;
2.9.2测试模块第i次向测试控制模块发送分配请求。
2.9.3测试控制模块计算名称为Mn的图像模型在第i次测试中可用的CPU资源的上限
Figure BDA0003420248300000122
Figure BDA0003420248300000123
Figure BDA0003420248300000124
的变化范围为
Figure BDA0003420248300000125
2.9.4测试控制模块将
Figure BDA0003420248300000126
发送给测试模块;
2.9.5测试模块通过docker容器的cgroups工具(Control groups,https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/cgroups.html,版本号为v1)将名称为Mn的图像模型可用CPU资源的上限设置成
Figure BDA0003420248300000127
Figure BDA0003420248300000128
表示名称为Mn的图像模型在每个CPU调度周期内能够使用该周期一半时间进行计算(在调度周期内,所有并行的程序均能够按比例使用一段时间的CPU)。
2.9.6测试模块使用图像模型完成图像任务;同时监控模块通过docker Stats命令(https://docs.docker.com/engine/reference/commandline/stats/)查看测试模块中图像模型的运行情况,并将图像模型第i次完成图像任务的时延
Figure BDA0003420248300000129
以及此时图像模型可用CPU资源的上限
Figure BDA00034202483000001210
作为第i个二元组
Figure BDA00034202483000001211
记录到名称为Mn的图像模型的时延文件CSVn中。
2.9.7如果
Figure BDA00034202483000001212
令时延总数I=i,转2.10;否则令i=i+1,转2.9.2;
2.10监控模块将文件CSVn发送给函数拟合模块。
2.11函数拟合模块从监控模块接收CSVn,根据CSVn中的I个二元组进行函数拟合。函数拟合模块调用scipy库(https://www.scipy.org/)中的curve_fit函数拟合出名称为Mn的图像模型的拟合函数,拟合原理为最小二乘法(通过最小化误差的平方和寻找数据的最佳函数匹配)。第n个任务请求中名称为Mn的图像模型的拟合函数为
Figure BDA0003420248300000131
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
Figure BDA0003420248300000132
步骤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资源量为
Figure BDA0003420248300000141
记录第n个分配决策Kn为(all,n,
Figure BDA0003420248300000142
)。all表示J个CPU核。(all,n,
Figure BDA0003420248300000143
)表示J个CPU核都拿出
Figure BDA0003420248300000144
的资源来执行第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个任务请求;
图像模型模块与接收端口、测试模块、测试控制模块相连,图像模型模块中包含常见的图像模型的数据,每个模型会在系统初始化的时候,生成对应的测试区间
Figure FDA0003420248290000011
和常量an,测试区间为图像模型可用的CPU资源上限的取值范围,常数an为图像模型可用的CPU资源上限迭代时的变化量;图像模型模块从接收端口接收第n个任务请求时,检索图像模型模块内部是否存在与模型名称Mn相同的图像模型,若存在,则将名称为Mn的图像模型数据发送给测试模块,同时将名称为Mn的图像模型对应的测试区间
Figure FDA0003420248290000012
及an发送给测试控制模块;
测试控制模块与图像模型模块、测试模块相连,测试控制模块从图像模型模块接收测试区间
Figure FDA0003420248290000013
及an,计算出I个名称为Mn的模型可用的CPU资源上限
Figure FDA0003420248290000014
I为正整数;测试控制模块第i次从测试模块接收名称为Mn的图像模型的CPU资源分配请求时,将
Figure FDA0003420248290000015
发送给测试模块;
测试模块与测试控制模块、图像模型模块、监控模块相连;测试模块从图像模型模块接收名称为Mn的模型数据,向测试控制模块发送I次名称为Mn的模型的CPU资源分配请求后,根据接收到的
Figure FDA0003420248290000021
设置I次名称为Mn的模型可用的CPU资源上限,并调用名称为Mn的图像模型在不同的上限条件下完成相同的图像任务;
监控模块与测试模块、函数拟合模块相连,监控模块负责监测测试模块中名称为Mn的图像模型的运行情况,将名称为Mn的模型第i次处理图像任务的时延
Figure FDA0003420248290000022
Figure FDA0003420248290000023
作为二元组
Figure FDA0003420248290000024
保存在名称为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.1系统初始化,生成图像模型模块中各个图像模型对应的测试区间
Figure FDA0003420248290000025
及an
2.2接收端口接收用户输入的N个任务请求,将N个任务请求缓存;N为正整数;
2.3令变量n=1;
2.4接收端口将第n个任务请求转发给图像模型模块和调度模块,调度模块缓存第n个任务请求;
2.5图像模型模块从接收端口接收第n个任务请求,根据Mn检查图像模型模块内是否有名称为Mn的图像模型,如果有,则将名称为Mn的图像模型的数据发送给测试模块,同时将测试区间
Figure FDA0003420248290000026
Figure FDA0003420248290000031
及an发送给测试控制模块,转2.6;否则显示“任务请求错误”,令n=n+1,转2.4;
2.6测试模块关闭CPU的睿频功能;
2.7测试模块从图像模型模块接收名称为Mn的图像模型数据;
2.8测试控制模块从图像模型模块中接收名称为Mn的图像模型的测试区间
Figure FDA0003420248290000032
及an
2.9测试模块、测试控制模块及监控模块协同工作,对名称为Mn的图像模型能够使用的CPU资源设置上限,并进行I次调整,同时使用图像模型在I个不同的上限时完成预设的图像任务,监控模块记录名称为Mn的图像模型完成图像任务的时延
Figure FDA0003420248290000033
方法如下:
2.9.1令i=1;
2.9.2测试模块第i次向测试控制模块发送分配请求;
2.9.3测试控制模块计算名称为Mn的图像模型在第i次测试中可用的CPU资源的上限
Figure FDA0003420248290000034
Figure FDA0003420248290000035
的变化范围为
Figure FDA0003420248290000036
2.9.4测试控制模块将
Figure FDA0003420248290000037
发送给测试模块;
2.9.5测试模块将名称为Mn的图像模型可用CPU资源的上限设置成
Figure FDA0003420248290000038
2.9.6测试模块使用图像模型完成图像任务;同时监控模块查看测试模块中图像模型的运行情况,并将图像模型第i次完成图像任务的时延
Figure FDA0003420248290000039
以及此时图像模型可用CPU资源的上限
Figure FDA00034202482900000310
作为第i个二元组
Figure FDA00034202482900000311
记录到名称为Mn的图像模型的时延文件CSVn中;
2.9.7如果
Figure FDA00034202482900000312
令时延总数I=i,转2.10;否则令i=i+1,转2.9.2;
2.10监控模块将文件CSVn发送给函数拟合模块;
2.11函数拟合模块从监控模块接收CSVn,根据CSVn中的I个二元组进行函数拟合,拟合出名称为Mn的图像模型的拟合函数,第n个任务请求中名称为Mn的图像模型的拟合函数为
Figure FDA0003420248290000041
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
Figure FDA0003420248290000042
步骤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资源量为
Figure FDA0003420248290000051
记录第n个分配决策Kn
Figure FDA0003420248290000052
all表示J个CPU核;
Figure FDA0003420248290000053
表示J个CPU核都拿出
Figure FDA0003420248290000054
的资源来执行第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。
3.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.1步所述
Figure FDA0003420248290000055
中的
Figure FDA0003420248290000056
满足
Figure FDA0003420248290000057
所述an满足3%≤an≤5%。
4.如权利要求3所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于所述
Figure FDA0003420248290000058
及an的具体值与图像模型模块中图像模型的种类有关,模型名称Mn为xception71_imagenet的测试区间
Figure FDA0003420248290000059
为[40%,100%],an为3%;模型名称Mn为resnet50_vd_animals的测试区间
Figure FDA00034202482900000510
为[20%,100%],an为4%;模型名称Mn为mobilenet_v2_imagenet的测试区间
Figure FDA00034202482900000511
为[20%,100%],an为4%;模型名称Mn为alexnet_imagenet的测试区间
Figure FDA00034202482900000512
为[10%,100%],an为5%;模型名称Mn为se_resnext50_32x4d_imagenet的测试区间
Figure FDA00034202482900000513
为[20%,100%],an为4%;模型名称Mn为darknet53_imagenet的测试区间
Figure FDA0003420248290000061
为[40%,100%],an为3%。
5.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.6步所述测试模块使用cpufrequtils工具包关闭CPU的睿频功能。
6.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.9.5步所述测试模块通过docker容器的cgroups工具v1将名称为Mn的图像模型可用CPU资源的上限设置成
Figure FDA0003420248290000062
7.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.9.6步所述监控模块通过docker Stats命令查看测试模块中图像模型的运行情况。
8.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于2.11步所述函数拟合模块调用scipy库中的curve_fit函数拟合出名称为Mn的图像模型的拟合函数。
9.如权利要求1所述的基于CPU资源与图像模型时延关系的资源分配方法,其特征在于3.4步所述步骤调度模块通过排序的方法查找出CPU中空闲资源最多的CPU核。
CN202111618376.5A 2021-12-20 2021-12-20 基于cpu资源与图像模型时延关系的资源分配方法 Active CN114281545B (zh)

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 true CN114281545A (zh) 2022-04-05
CN114281545B 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 (6)

* Cited by examiner, † Cited by third party
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 辽宁工程技术大学 资源分配方法、装置及系统
CN112162856A (zh) * 2020-09-23 2021-01-01 武汉联影医疗科技有限公司 Gpu虚拟资源的分配方法、装置、计算机设备和存储介质
CN112269650A (zh) * 2020-12-18 2021-01-26 北京达佳互联信息技术有限公司 任务调度方法、装置、电子设备和存储介质
CN113656166A (zh) * 2021-09-02 2021-11-16 上海联影医疗科技股份有限公司 一种任务处理系统及其计算资源分配方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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 辽宁工程技术大学 资源分配方法、装置及系统
CN112162856A (zh) * 2020-09-23 2021-01-01 武汉联影医疗科技有限公司 Gpu虚拟资源的分配方法、装置、计算机设备和存储介质
CN112269650A (zh) * 2020-12-18 2021-01-26 北京达佳互联信息技术有限公司 任务调度方法、装置、电子设备和存储介质
CN113656166A (zh) * 2021-09-02 2021-11-16 上海联影医疗科技股份有限公司 一种任务处理系统及其计算资源分配方法

Also Published As

Publication number Publication date
CN114281545B (zh) 2022-07-12

Similar Documents

Publication Publication Date Title
CN110399222B (zh) Gpu集群深度学习任务并行化方法、装置及电子设备
CN110737529B (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
Downey Predicting queue times on space-sharing parallel computers
CN107992359B (zh) 一种云环境下代价感知的任务调度方法
CN110321222B (zh) 基于决策树预测的数据并行作业资源分配方法
CN111431961B (zh) 一种云数据中心的节能任务分配方法
CN105718479A (zh) 跨idc大数处理架构下执行策略生成方法、装置
He et al. A QoS guided scheduling algorithm for grid computing
Cariño et al. Dynamic load balancing with adaptive factoring methods in scientific applications
CN103701886A (zh) 一种云计算环境下的服务及资源分层调度方法
Lin et al. A model-based approach to streamlining distributed training for asynchronous SGD
CN116263701A (zh) 算力网络任务调度方法、装置、计算机设备及存储介质
CN108132840B (zh) 一种分布式系统中的资源调度方法及装置
Hu et al. Job scheduling without prior information in big data processing systems
CN113886080A (zh) 高性能集群任务调度方法、装置、电子设备及存储介质
CN111131447A (zh) 一种基于中介节点任务分配的负载均衡方法
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
KR100935361B1 (ko) 가중치 기반 멀티큐 부하분산 병렬처리 시스템 및 방법
CN111144701B (zh) 一种分布式环境下etl作业调度资源分类评估的方法
CN114281545B (zh) 基于cpu资源与图像模型时延关系的资源分配方法
CN114650321A (zh) 用于边缘计算的任务调度方法及边缘计算终端
US10592473B2 (en) Method for improving energy efficiency of map-reduce system and apparatus thereof
CN111930485B (zh) 一种基于性能表现的作业调度方法
WO2018119899A1 (zh) 一种存储控制器及io请求处理方法
KR101639947B1 (ko) 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체

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