一种GPU集群任务调度分配方法组成比例

技术编号:24497290 阅读:22 留言:0更新日期:2020-06-13 03:32
本发明专利技术公开了一种GPU集群任务调度分配方法,在优先级的基础上,引入任务等待时间为提升优先级的方式,并以特定的任务分配方法来最大化整体的GPU集群使用率,以预先模拟调度和允许长时间任务中断的方式解决定时型任务的需求。本发明专利技术在保证任务优先级以及小型任务不会被调度到不同物理节点的基础上,使得随机型任务能够最大化的占用GPU集群的空闲GPU卡。

A task scheduling and allocation method for GPU cluster

【技术实现步骤摘要】
一种GPU集群任务调度分配方法
本专利技术属于模式识别与人工智能
,具体为一种GPU集群任务调度分配方法。
技术介绍
随着近些年人工智能的蓬勃发展,越来越多的企业将人工智能作为企业业务增长的新动力和工具。当前人工智能中主要的发展领域为深度学习,其能够解决以往传统机器学习算法无法解决的众多问题,这些主要归功于当今世界不缺乏大规模样本以及计算机硬件的发展,如NvidiaGPU大规模的使用。随着企业发展的业务领域不断扩展以及业务量的不断提高,自然需要以机房GPU集群模式来提供整个企业整体的计算力,如阿里云的GPU集群,腾讯云的GPU集群等。传统的任务调度包括先进先出的队列任务调度和优先级任务调度。先进先出的队列任务调度即开启一个等待任务队列,随着用户以时间维度,不断地提交所需要运行的任务给GPU集群,然后GPU集群负责进行整体的任务安排和部署;而优先级任务调度,即给每个任务一个优先级,在以时间维度上,将用户提交的任务以管理员或者用户标记一个优先级,当GPU真正调度任务时,去任务队列中取优先级最高的任务。但是,上述方法有着较为严重的缺陷:(1)完全的先进先出任务队列调度意味着有些紧急任务无法被调度,如无法调度某些定时型任务或者周期性任务;(2)简单的优先级任务调度,意味着某些任务的优先级会一直抢占GPU集群的执行空间,从而即使很早之前提交的任务也无法被真正的GPU集群所执行。
技术实现思路
针对现有技术中存在的上述缺陷,本专利技术的目的是提供一种GPU集群任务调度分配方法,以解决原有的简单先进先出任务调度无法解决某些高优先级或者定时型任务的需求,和简单的优先级任务调度无法调度提交很久的任务的问题。实现本专利技术目的的技术方案为:一种GPU集群任务调度分配方法,包括:获取定时型任务到定时型任务队列;模拟任务调度在当前时刻距定时型任务队列第一个定时型任务预约时间内,以及定时型任务队列上一个定时型任务预约时间与下一个定时型任务预约时间之间的随机型任务调度的模拟过程,将模拟随机型任务调度结果追加到任务调度队列中,并以时间倒序排序,逐个删除任务调度队列中不满足下一个定时型任务的模拟随机型任务调度结果,并新增下一个定时型任务模拟结果到任务调度队列;从任务调度队列中获取当前所需要调度的任务。优选地,对随机型任务进行调度模拟前接收并提交随机型任务到随机型任务队列,更新随机型任务队列中随机型任务优先级。优选地,更新随机型任务队列中任务的优先级,具体为:计算总优先级,并将随机型任务队列中所有随机型任务以总优先级降序排序随机型任务总优先级Ptotal具体为:Ptotal=Pinit+Pdyn式中,Pinit为静态优先级,具体计算公式为:其中μ=0,σ=30,p=αAgpuBtime+β1Btime+β2Agpu,α=-0.01,β1=-1.5,β2=-0.25,Agpu为所需卡数,Btime为所需训练时间;Pdyn为动态优先级,具体计算公式为:Pdyn=γCwait[0.9+δ(max(0,Pinit-100))]其中γ=0.9,δ=0.01,Cwait为当前任务等待的小时时长。优选地,随机型任务调度的模拟过程具体为:对随机型任务队列中前n个随机型任务按照集群当前空闲GPU信息表,以设定分配逻辑进行模拟分配,如若分配成功,则输出此次模拟任务调度中等待态随机型任务到集群节点的映射表;如分配异常,则先隐藏异常任务,重新进行模拟分配,直到此轮随机型任务调度模拟成功;模拟最近一个GPU集群中执行态任务执行结束剩余所需时间t,输出经过时间t之后的GPU集群空闲GPU信息表。优选地,n个随机型任务所需卡数总量小于GPU集群中空闲GPU信息表中GPU卡数总量。优选地,对前n个随机型任务按照集群当前空闲GPU信息表,以设定分配逻辑进行模拟分配具体为:确定每个任务所需卡数;判断空闲GPU信息表中对应任务所需卡数的物理机数量是否大于相应卡数任务个数;若是,则将每个任务分配给相应卡数的物理机,分配成功;若否,则将不满足条件的任务卡数进行拆分后分配给相应卡数的物理机,如不满足条件的任务中存在不能拆分的任务,则分配异常,否则,分配成功。优选地,将不满足条件的任务卡数进行拆分的方法为:按任务所需卡数从小到大顺序拆分任务,并将任务所需卡数任务拆分为s=s-1与1的组合,每拆分一次,按拆分后的卡数分配给相应卡数的物理机,若分配不成功,则继续将卡数为s的任务进行分解,直至分配成功。优选地,对于超过M小时还未完成执行的随机型任务,将其进行中断,并将该任务从执行态转换到等待态,重新放入随机型任务队列作为新增任务,M≤24。优选地,所述随机型任务为用户托管给GPU集群调度,非完全严格要求任务启动时间且支持每隔M个小时被中断然后重新拉起继续执行的任务,M≤24;所述定时型任务为预先提交给GPU集群,在设定时刻启动且不能被中断的任务。优选地,定时型任务至少提前M小时提交至定时型任务队列,。本专利技术与现有技术相比,其显著优点为:(1)本专利技术基于任务所需时间与所需卡数为因子,通过设计对应的静态优先级来指明任务所需资源越少则静态优先级越高;且基于任务等待时间为主要维度,不断的对等待态的任务提升优先级,且初始静态优先级越高的任务其动态优先级增长的越快,从而在保证所有任务都有机会被调度的基础上,进一步保证所需资源越少的任务越能够被调度,最后通过高斯函数进一步的区分小卡时与中等卡时的优先级,符合现实期望;(2)本专利技术通过特定的计算逻辑,以先不拆分的形式进行任务到GPU集群空闲GPU卡的分配,并进一步的从小到大形式进行后续拆分的任务到GPU集群空闲GPU卡分配,在保证任务优先级以及小型任务不会被调度到不同物理节点的基础上,使得随机型任务能够最大化的占用GPU集群的空闲GPU卡;(3)本专利技术以提前多个小时提交定时型任务,并以定时型任务为锚点,反向计算符合前期时间调度的随机型任务进行填充,从而保证了定时型任务调度和随机型任务调度的基础上,使的GPU集群的GPU卡利用率最大化。附图说明图1为本专利技术一个实施例中的一种GPU集群任务调度方法流程图。图2为本专利技术一个实施例中均值为0,方差为30的高斯分布左边曲线图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出。其中,下面通过参考附图描述的实施例是示例性的,旨在用于解释本专利技术,而不能理解为对本专利技术的限制。如图1所示,一种GPU集群任务调度方法,包括:获取定时型任务到定时型任务队列;GPU任务分为随机型任务和定时型任务,任务队列分为随机型任务队列Qrandom,定时型任务队列Qtime和任务调度队列Qschedule。每个任务有2种互斥状态,分别为在任务队列中等待态和在GPU集群中的执行态。任务数量上随机型任务占本文档来自技高网...

【技术保护点】
1.一种GPU集群任务调度分配方法,其特征在于,包括:/n获取定时型任务到定时型任务队列;/n模拟任务调度在当前时刻距定时型任务队列第一个定时型任务预约时间内,以及定时型任务队列上一个定时型任务预约时间与下一个定时型任务预约时间之间的随机型任务调度的模拟过程,将模拟随机型任务调度结果追加到任务调度队列中,并以时间倒序排序,逐个删除任务调度队列中不满足下一个定时型任务的模拟随机型任务调度结果,并新增下一个定时型任务模拟结果到任务调度队列;/n从任务调度队列中获取当前所需要调度的任务。/n

【技术特征摘要】
1.一种GPU集群任务调度分配方法,其特征在于,包括:
获取定时型任务到定时型任务队列;
模拟任务调度在当前时刻距定时型任务队列第一个定时型任务预约时间内,以及定时型任务队列上一个定时型任务预约时间与下一个定时型任务预约时间之间的随机型任务调度的模拟过程,将模拟随机型任务调度结果追加到任务调度队列中,并以时间倒序排序,逐个删除任务调度队列中不满足下一个定时型任务的模拟随机型任务调度结果,并新增下一个定时型任务模拟结果到任务调度队列;
从任务调度队列中获取当前所需要调度的任务。


2.根据权利要求1所述的GPU集群任务调度分配方法,其特征在于,对随机型任务进行调度模拟前接收并提交随机型任务到随机型任务队列,更新随机型任务队列中随机型任务优先级。


3.根据权利要求2所述的GPU集群任务调度分配方法,其特征在于,更新随机型任务队列中任务的优先级,具体为:
计算总优先级,并将随机型任务队列中所有随机型任务以总优先级降序排序
随机型任务总优先级Ptotal具体为:
Ptotal=Pinit+Pdyn
式中,Pinit为静态优先级,具体计算公式为:



其中μ=0,σ=30,p=αAgpuBtime+β1Btime+β2Agpu,α=-0.01,β1=-1.5,β2=-0.25,Agpu为所需卡数,Btime为所需训练时间;
Pdyn为动态优先级,具体计算公式为:
Pdyn=γCwait[0.9+δ(max(0,Pinit-100))]
其中γ=0.9,δ=0.01,Cwait为当前任务等待的小时时长。


4.根据权利要求2所述的GPU集群任务调度分配方法,其特征在于,随机型任务调度的模拟过程具体为:
对随机型任务队列中前n个随机型任务按照集群当前空闲GPU信息表,以设定分配逻辑进行模拟分配,如若分配成功,则输出此次模拟任务调度中等待态随机型任务到集群节点的任务映射表;
如分配异常,则先隐藏异常任务,重新进...

【专利技术属性】
技术研发人员:詹智财黄睿陈子寒罗阳王康
申请(专利权)人:苏宁云计算有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1