一种训练任务资源调度方法、装置、设备及介质制造方法及图纸

技术编号:31710307 阅读:14 留言:0更新日期:2022-01-01 11:13
本申请公开了一种训练任务资源调度方法、装置、设备及介质,该方法包括:确定服务器集群中正在运行的目标训练任务的已分配资源利用率;若已分配资源利用率满足预设条件,则根据当前服务器集群中的空闲资源对服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中为目标训练任务分配新资源,以得到扩容后训练任务;当获取新训练任务,并且当前服务器集群中的空闲资源不满足新训练任务的资源需求时,则从所有所述扩容后训练任务对应的所述新资源所在的服务器节点中筛选出目标服务器节点,并对所述目标服务器节点中的所述新资源进行释放。通过上述方案,能够提升服务器集群的训练任务资源伸缩效率。的训练任务资源伸缩效率。的训练任务资源伸缩效率。

【技术实现步骤摘要】
一种训练任务资源调度方法、装置、设备及介质


[0001]本专利技术涉及人工智能
,特别涉及一种训练任务资源调度方法、装置、设备及介质。

技术介绍

[0002]在基于服务器集群的AI(即Artificial Intelligence,人工智能)训练场景中,一个模型训练所需要的具体资源由于无法被预先准确计算出来,所以目前算法人员在申请训练任务使用的CPU(即Central Processing Unit,中央处理器)和GPU(即Graphics Processing Unit,图形处理器)时,通常都会按照个人主观判断申请或者按照最大规格来申请,这可能会导致训练任务资源不充分或者资源浪费。对于已经在运行的训练任务Job来说,如果该训练任务Job的已分配资源利用率已经很高,此时会出现由于训练任务Job的预分配资源不足致使无法提高训练性能、而集群中却存在资源闲置情况的问题。
[0003]为了克服上述问题,当前可以采取以下两种方式来对训练任务Job进行资源伸缩,以达到为训练任务Job进行资源扩容或缩容的目的,其中,一种方式是采用Horovod训练框架为训练任务提供的弹性资源伸缩机制,但是在使用这种方式时需要用户进行手动处理,从而降低了资源伸缩效率;而另外一种方式则是基于checkpoint来进行训练任务的资源弹性扩容,不过这种方式需要先终止训练任务Job中的所有任务运行进程task,并进行task的重建,整个过程消耗时间过多,由此也降低了资源伸缩效率。
[0004]综上,如何提升服务器集群的训练任务资源伸缩效率是目前有待解决的问题。

技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种训练任务资源调度方法、装置、设备及介质,能够提升服务器集群的训练任务资源伸缩效率。其具体方案如下:
[0006]第一方面,本申请公开了一种训练任务资源调度方法,包括:
[0007]确定当前所述服务器集群中正在运行的目标训练任务的已分配资源利用率;所述目标训练任务为所述分布式训练任务中的任一训练任务;
[0008]若所述已分配资源利用率满足预设条件,则根据当前所述服务器集群中的空闲资源对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中为所述目标训练任务分配新资源,以得到扩容后训练任务;
[0009]当获取到新训练任务,则判断当前所述服务器集群中的空闲资源是否满足所述新训练任务的资源需求;
[0010]若当前所述服务器集群中的空闲资源不满足所述资源需求,则从所有所述扩容后训练任务对应的所述新资源所在的服务器节点中筛选出目标服务器节点,并对所述目标服务器节点中的所述新资源进行释放。
[0011]可选的,所述确定当前所述服务器集群中正在运行的目标训练任务的已分配资源利用率,包括:
[0012]确定当前所述服务器集群中正在运行的目标训练任务的已分配GPU利用率;
[0013]相应的,所述若所述已分配资源利用率满足预设条件,则根据当前所述服务器集群中的空闲资源对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中为所述目标训练任务分配新资源,包括:
[0014]若所述已分配GPU利用率不小于第一预设阈值,并且所述服务器集群中的空闲GPU资源数量不小于第一预设GPU资源数量,则对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中根据所述第一预设GPU资源数量和预设CPU资源数量为所述目标训练任务创建具有相应资源的新任务运行进程。
[0015]可选的,所述确定当前所述服务器集群中正在运行的目标训练任务的已分配资源利用率,包括:
[0016]确定当前所述服务器集群中正在运行的目标训练任务的已分配GPU利用率和已分配CPU利用率;
[0017]相应的,所述若所述已分配资源利用率满足预设条件,则根据当前所述服务器集群中的空闲资源对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中为所述目标训练任务分配新资源,包括:
[0018]若所述已分配GPU利用率小于第一预设阈值,并且所述已分配CPU利用率不小于第二预设阈值,则确定当前所述目标训练任务所需的新CPU资源数量,并判断当前运行所述目标训练任务的服务器节点中的空闲CPU资源数量是否不小于所述新CPU资源数量;
[0019]如果所述空闲CPU资源数量不小于所述新CPU资源数量,则从所述服务器集群中筛选出当前运行所述目标训练任务的服务器节点,并在筛选到的服务器节点中为所述目标训练任务的已创建任务运行进程分配与所述新CPU资源数量相一致的新CPU资源;
[0020]如果所述空闲CPU资源数量小于所述新CPU资源数量,则根据当前所述服务器集群中其他服务器节点的空闲资源,对所述其他服务器节点进行筛选,并在筛选到的服务器节点中根据所述新CPU资源数量以及第二预设GPU资源数量为所述目标训练任务创建具有相应资源的新任务运行进程。
[0021]可选的,所述从所有所述扩容后训练任务对应的所述新资源所在的服务器节点中筛选出目标服务器节点,并对所述目标服务器节点中的所述新资源进行释放,包括:
[0022]确定每个所述服务器节点中包含的新资源总数;
[0023]确定每个所述服务器节点中与所述新资源相关的训练任务总数,以得到关联任务总数;
[0024]基于所述服务器节点中的所述新资源总数和所述关联任务总数,确定出所述服务器集群中每个所述服务器节点的优先级;
[0025]基于所述服务器节点的优先级从所述服务器集群中确定出目标服务器,并对所述目标服务器节点中的所述新资源进行释放,以使释放后的所述服务器集群中的空闲资源满足所述新训练任务的资源需求。
[0026]可选的,还包括:
[0027]按照预设扩容触发时刻定期触发为已分配资源利用率满足所述预设条件的所述目标训练任务分配新资源的步骤;
[0028]按照预设缩容触发时刻定期触发对所述目标服务器节点中的所述新资源进行释
放的步骤。
[0029]可选的,还包括:
[0030]对同时运行有第一训练任务和第二训练任务的任一服务器节点进行实时监视,当监视到所述任一服务器节点中的所述第一训练任务结束运行,则确定当前所述任一服务器节点中的空闲资源,并确定运行在其他服务器节点上的属于所述第二训练任务的任务运行进程所对应的进程资源;
[0031]判断所述任一服务器节点中的空闲资源是否大于所述进程资源,如果是,则将所述其他服务器节点上的属于所述第二训练任务的任务运行进程迁移至所述任一服务器节点。
[0032]第二方面,本申请公开了一种训练任务资源调度装置,应用于服务器集群,所述服务器集群用于执行分布式训练任务,所述装置包括:
[0033]利用率确定模块,用于确定当前所述服务器集群中正在运行的目标训练任务的已分配资源利用率;所述目标训练任务为所述分布式训练任务中的任一训练任务;
[0034]资源分配模块,用于若所述已分配资源利用率本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种训练任务资源调度方法,其特征在于,应用于服务器集群,所述服务器集群用于执行分布式训练任务,包括:确定当前所述服务器集群中正在运行的目标训练任务的已分配资源利用率;所述目标训练任务为所述分布式训练任务中的任一训练任务;若所述已分配资源利用率满足预设条件,则根据当前所述服务器集群中的空闲资源对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中为所述目标训练任务分配新资源,以得到扩容后训练任务;当获取到新训练任务,则判断当前所述服务器集群中的空闲资源是否满足所述新训练任务的资源需求;若当前所述服务器集群中的空闲资源不满足所述资源需求,则从所有所述扩容后训练任务对应的所述新资源所在的服务器节点中筛选出目标服务器节点,并对所述目标服务器节点中的所述新资源进行释放。2.根据权利要求1所述的训练任务资源调度方法,其特征在于,所述确定当前所述服务器集群中正在运行的目标训练任务的已分配资源利用率,包括:确定当前所述服务器集群中正在运行的目标训练任务的已分配GPU利用率;相应的,所述若所述已分配资源利用率满足预设条件,则根据当前所述服务器集群中的空闲资源对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中为所述目标训练任务分配新资源,包括:若所述已分配GPU利用率不小于第一预设阈值,并且所述服务器集群中的空闲GPU资源数量不小于第一预设GPU资源数量,则对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中根据所述第一预设GPU资源数量和预设CPU资源数量为所述目标训练任务创建具有相应资源的新任务运行进程。3.根据权利要求1所述的训练任务资源调度方法,其特征在于,所述确定当前所述服务器集群中正在运行的目标训练任务的已分配资源利用率,包括:确定当前所述服务器集群中正在运行的目标训练任务的已分配GPU利用率和已分配CPU利用率;相应的,所述若所述已分配资源利用率满足预设条件,则根据当前所述服务器集群中的空闲资源对所述服务器集群中的服务器节点进行筛选,并在筛选到的服务器节点中为所述目标训练任务分配新资源,包括:若所述已分配GPU利用率小于第一预设阈值,并且所述已分配CPU利用率不小于第二预设阈值,则确定当前所述目标训练任务所需的新CPU资源数量,并判断当前运行所述目标训练任务的服务器节点中的空闲CPU资源数量是否不小于所述新CPU资源数量;如果所述空闲CPU资源数量不小于所述新CPU资源数量,则从所述服务器集群中筛选出当前运行所述目标训练任务的服务器节点,并在筛选到的服务器节点中为所述目标训练任务的已创建任务运行进程分配与所述新CPU资源数量相一致的新CPU资源;如果所述空闲CPU资源数量小于所述新CPU资源数量,则根据当前所述服务器集群中其他服务器节点的空闲资源,对所述其他服务器节点进行筛选,并在筛选到的服务器节点中根据所述新CPU资源数量以及第二预设GPU资源数量为所述目标训练任务创建具有相应资源的新任务运行进程。
4.根据权利要求1所述的训练任务资源调度方法,其特征在...

【专利技术属性】
技术研发人员:王德奎陈培
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1