本发明涉及计算机,尤其涉及一种集群资源调度方法、系统、终端及存储介质。
背景技术:
1、随着人工智能的快速发展,单个计算单元(例如:ai计算卡)以无法支撑模型的训练、优化,所以将深度学习模型部署于集群中,通过集群所提供的计算资源,提高深度学习模型训练、优化的效率。其中,集群由多个节点组成,每个节点上可以设置多个计算单元。
2、深度学习模型的训练、优化可以分为多个作业任务,每个作业任务所需要的计算资源可能不同。现有技术中,对于每个作业任务往往是采用对集群的计算资源平均分配或者预先配置的方式,导致集群利用率低、作业任务排队严重,集群效率低等问题。
技术实现思路
1、本发明的主要目的在于提供一种集群资源调度方法、系统、终端及计算机可读存储介质,旨在解决现有技术中在对深度学习模型的训练、优化过程中集群利用率低、作业任务排队严重,集群效率低等问题。
2、为了实现上述目的,本发明提供了一种集群资源调度方法,所述方法包括:
3、获取用于深度学习模型训练的待处理作业;
4、在所述待处理作业为弹性训练作业的情况下,根据所述集群在第一预设时间段内的预测空闲资源量、所述弹性训练作业的需求计算资源量,确定所述弹性训练作业的分配计算资源量;
5、根据所述集群的实时空闲资源量以及所述弹性训练作业的分配计算资源量,为所述弹性训练作业分配所述集群中的节点,作为所述弹性训练作业的作业节点,以调用所述作业节点在第二预设时间段内执行所述弹性训练作业;
6、基于所述集群在下一第一预设时间段内的所述预测空闲资源量,调整所述弹性训练作业的所述分配计算资源量;
7、根据所述集群的所述实时空闲资源量以及所述弹性训练作业调整后的所述分配计算资源量,为所述弹性训练作业重新分配所述弹性训练作业的作业节点,以调用重新分配的所述作业节点在下一所述第二预设时间段内继续执行所述弹性训练作业,并继续执行基于所述集群在下一第一预设时间段的预测空闲资源量,调整所述弹性训练作业的所述分配计算资源量的步骤,直至所述弹性训练作业完成。
8、在本发明的一些实施例中,所述根据所述集群在第一预设时间段内的预测空闲资源量、所述弹性训练作业的所述需求计算资源量,确定所述弹性训练作业的分配计算资源量,具体包括:
9、在所述集群的第一预设时间段内的所述预测空闲资源量大于所述弹性训练作业的所述需求计算资源量的最大值的情况下,将所述弹性训练作业的所述需求计算资源量的最小值,作为所述弹性训练作业的作业固定资源量;以及将第一差值作为所述弹性训练作业的作业弹性资源量;
10、其中,所述第一差值为所述弹性训练作业的所述需求计算资源量的所述最大值与所述最小值的差值;
11、在所述集群的实时空闲资源量小于所述弹性训练作业的所述需求计算资源量的所述最大值并且大于或者等于所述需求计算资源量的所述最小值的情况下,将所述弹性训练作业的所述最小值作为所述弹性训练作业的作业固定资源量;以及将第二差值作为所述弹性训练作业的作业弹性资源量;
12、其中,所述第二差值为所述集群的所述实时空闲资源量与所述弹性训练作业的所述需求计算资源量的所述最小值的差值;
13、在所述集群的实时空闲资源量小于所述弹性训练作业的所述需求计算资源量的所述最小值的情况下,将所述弹性训练作业的所述需求计算资源量的所述最小值作为所述弹性训练作业的作业固定资源量,以及将0作为所述弹性训练作业的作业弹性资源量;
14、根据所述弹性训练作业的所述作业固定资源量、所述作业弹性资源量,确定所述弹性训练作业的分配计算资源量。
15、在本发明的一些实施例中,在根据所述集群在第一预设时间段内的预测空闲资源量、所述弹性训练作业的所述需求计算资源量,确定所述弹性训练作业的分类计算资源量之前,所述方法还包括:
16、通过预设集群资源预测模型,预测所述集群在所述第一预设时间段内的预测可用资源量;以及
17、获取所述集群的当前正在运行的待处理作业在所述第一预设时间段释放的释放可用资源量;
18、根据所述预测可用资源量以及所述释放可用资源量,确定所述集群在所述第一预设时间段内的所述预测空闲资源量。
19、在本发明的一些实施例中,所述基于所述集群在下一第一预设时间段内的预测空闲资源量,调整所述弹性训练作业的所述分配计算资源量,具体包括:
20、在所述集群的下一第一预设时间段内的预测空闲资源量大于0并且所述弹性训练作业的所述作业弹性资源量小于第一比较值的情况下,对所述弹性训练作业的作业弹性资源量进行扩容;
21、其中,所述第一比较值为所述弹性训练作业的所述需求计算资源量的最大值与最小值的差值;
22、在所述集群的下一第一预设时间段内的等待作业资源量大于0并且所述弹性训练作业的所述作业弹性资源量大于0的情况下,对所述弹性训练作业的所述作业弹性资源量进行缩减;
23、根据所述弹性训练作业进行扩容或者缩减后的所述作业弹性资源量,调整所述弹性训练作业的所述分配计算资源量。
24、在本发明的一些实施例中,在所述集群的下一第一预设时间段内的预测空闲资源量大于0并且所述弹性训练作业的作业弹性资源量小于第一比较值的情况下,对所述弹性训练作业的作业弹性资源量进行扩容,具体包括:
25、在所述集群在下一所述第一预设时间段内的预测空闲资源量大于第二比较值的情况下,将所述第二比较值作为扩容资源量;
26、其中,所述第二比较值为所述弹性训练作业的所述需求计算资源量的最大值减去所述需求计算资源量的最小值再减去所述作业弹性资源量的差值;
27、在所述集群在下一所述第一预设时间段内的预测空闲资源量小于或者等于第二比较值的情况下,将所述集群在下一所述第一预设时间段内的预测空闲资源量作为扩容资源量;
28、根据所述扩容资源量,对所述弹性训练作业的作业弹性资源量进行扩容。
29、在本发明的一些实施例中,所述根据所述集群的实时空闲资源量以及所述弹性训练作业的分配计算资源量,为所述弹性训练作业分配所述集群的节点,作为所述弹性训练作业的作业节点,具体包括:
30、确定所述集群的实时空闲资源量是否满足所述弹性训练作业的所述分配计算资源量;
31、在所述集群的所述实时空闲资源量满足所述弹性训练作业的分配计算资源量的情况下,为所述弹性训练作业分配所述集群的节点,作为所述弹性训练作业的作业节点;
32、在所述集群的所述实时空闲资源量未满足所述弹性训练作业的分配计算资源量的情况下,将所述弹性训练作业从预设队列的调度队列中调整至所述预设队列的等待调度队列中;
33、在预设等待调度时间后将所述弹性训练作业重新从所述等待调度队列中调整至所述调度队列,并在所述集群的所述实时空闲资源量满足所述弹性训练作业的所述分配计算资源量的情况下,为所述弹性训练作业分配所述集群的节点,作为所述弹性训练作业的作业节点,直至所述弹性训练作业被执行。
34、在本发明的一些实施例中,在调用所述作业节点在第二预设时间段内执行所述弹性训练作业之后,所述方法还包括:
35、将所述弹性训练作业从预设队列的调度队列中调整至所述预设队列的二次调度队列中,以使在基于所述集群在下一第一预设时间段内的预测空闲资源量,调整所述弹性训练作业的分配计算资源量之后,从所述二次调度队列中调度所述弹性训练作业,使得所述弹性训练作业在下一第二预设时间段内继续执行。
36、在本发明的一些实施例中,在获取用于深度学习模型训练的待处理作业之后,所述方法还包括:
37、在所述待处理作业为弹性固定作业的情况下,根据所述集群在所述第一预设时间段内的预测空闲资源量、所述弹性固定作业的需求计算资源量,确定所述弹性固定作业的所述分配计算资源量;
38、根据所述集群的实时空闲资源量以及所述弹性固定作业的分配计算资源量,为所述弹性固定作业分配所述集群的节点,作为所述弹性固定作业的作业节点,以调用所述作业节点执行所述弹性固定作业。
39、在本发明的一些实施例中,在获取用于深度学习模型训练的待处理作业之后,所述方法还包括:
40、在所述待处理作业为非弹性作业的情况下,根据所述集群的实时空闲资源量以及所述非弹性作业的所述需求计算资源量,为所述非弹性作业分配所述集群中的节点,作为所述非弹性作业的作业节点,以调用所述作业节点执行所述非弹性作业。
41、在本发明的一些实施例中,所述方法还包括:
42、在可被抢占的所述待处理作业的所述作业节点被其他待处理作业抢占的情况下,控制所述作业节点正在执行的所述待处理作业挂起,在所述其他待处理作业执行完成后,控制被抢占的所述作业节点继续执行所述待处理作业。
43、为了实现上述目的,本发明还提供了一种集群资源调度系统,所述系统包括:作业模块、资源管理器、任务生命周期管理器、调度器;
44、所述作业模块用于获取用于深度学习模型训练的待处理作业;
45、所述资源管理器用于在所述待处理作业为弹性训练作业的情况下,根据所述集群在第一预设时间段内的预测空闲资源量、所述弹性训练作业的需求计算资源量,确定所述弹性训练作业的分配计算资源量;
46、所述调度器用于根据所述集群的实时空闲资源量以及所述弹性训练作业的分配计算资源量,为所述弹性训练作业分配所述集群中的节点,作为所述弹性训练作业的作业节点,以调用所述作业节点在第二预设时间段内执行所述弹性训练作业;
47、所述任务生命周期管理器用于基于所述集群在下一所述第一预设时间段内的所述预测空闲资源量,调整所述弹性训练作业的所述分配计算资源量;
48、所述调度器还用于根据所述集群的所述实时空闲资源量以及所述弹性训练作业调整后的所述分配计算资源量,为所述弹性训练作业重新分配所述弹性训练作业的作业节点,以调用重新分配的所述作业节点在下一第二预设时间段内继续执行所述弹性训练作业,并继续执行基于所述集群在下一第一预设时间段的预测空闲资源量,调整所述弹性训练作业的分配计算资源量的步骤,直至所述弹性训练作业执行完成。
49、为了实现上述目的,本发明还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任意一项所述的集群资源调度方法中的步骤。
50、为了实现上述目的,本发明还提供了一种终端,其特征在于,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如上任意一项所述的集群资源调度方法中的步骤。
51、本发明通过预测得到的集群在第一预设时间段内的预测空闲资源量,为弹性训练作业分配计算资源量,再根据集群的实时空闲资源量以及分配计算资源量为该弹性训练作业分配对应的作业节点,以调用该作业节点执行该弹性训练作业。并且,在弹性训练作业执行过程中,根据集群在下一第一预设时间段的预测空闲资源量,调整该弹性训练作业的分配计算资源量,从而为该弹性训练作业重新分配作业节点,以调用重新分配的作业节点在下一第二预设时间段内计算执行该弹性训练作业,从而基于集群的资源动态变化实现对弹性训练作业的计算资源量的调整,充分利用碎片化的空闲资源,提高集群资源利用率,缓解集群排队情况严重的问题,加快对深度学习网络模型的训练。