一种基于机器学习的服务器算力调度方法与流程

摘要: 本发明涉及服务器资源调度,尤其涉及一种基于机器学习的服务器算力调度方法。背景技术:1、随着云计算、人工智能训练、图形渲染、科学计算和大规模数据处理业务的发展,服...
一种基于机器学习的服务器算力调度方法与流程

本发明涉及服务器资源调度,尤其涉及一种基于机器学习的服务器算力调度方法。

背景技术:

1、随着云计算、人工智能训练、图形渲染、科学计算和大规模数据处理业务的发展,服务器集群中同时存在处理器、图形处理器、智能计算单元、内存、存储和网络带宽等多种异构资源,现有服务器资源调度方法通常根据待调度任务的资源需求,在当前处于空闲状态的服务器节点中选择满足条件的目标节点,并按照资源余量、负载均衡、任务优先级或资源亲和性等规则完成任务分配;在实际服务器集群运行过程中,多个任务长期运行、动态释放和反复迁移会导致不同类型资源在服务器节点内部或节点之间呈现离散分布。例如,集群中总体剩余处理器核心数、图形处理器数量和内存容量可能满足任务需求,但这些资源分散在不同节点、不同内存访问区域或不同加速卡互连域中,无法形成可一次性分配给待调度任务的连续算力资源,现有调度方法多以当前空闲资源总量或单一资源指标作为调度依据,难以识别总资源充足但连续可用算力不足的隐性资源浪费问题。

2、现有部分调度方法虽然能够感知处理器、图形处理器、内存或带宽等资源状态,但通常按照各资源维度分别进行匹配,缺少将多种异构资源转换为统一算力表示并进一步形成算力碎片空间的处理机制。因此,现有方法难以准确描述不同资源之间的组合关系、连续分布关系和拓扑关联关系,容易出现某一资源满足而其他资源不连续,或者资源数量满足但拓扑位置不满足任务运行要求的情况;现有基于机器学习的调度方法多用于预测资源利用率、负载变化、任务执行时间或调度成功率,其预测目标通常仍围绕当前资源状态或未来负载状态展开,并未针对不同候选调度方案分别预测其执行后形成的未来算力碎片空间。由此,现有方法在生成候选调度方案时,难以判断某一调度方案是否会进一步加剧资源离散化,也难以提前判断该调度方案能否在未来形成满足任务需求的连续算力空间;在任务无法直接调度时,现有技术通常采用任务迁移、抢占、扩缩容或资源回收等方式释放资源,但这些操作大多是在调度失败后被动执行,或者仅依据资源不足、负载过高、能耗优化等条件触发,缺少基于未来连续算力空间形成能力的主动重构判断机制,尤其在大规模异构服务器集群中,任务迁移会带来迁移耗时、网络传输开销、任务中断风险以及扩缩容开销,如果仅为了释放局部资源而执行迁移,可能无法真正形成可调度的连续算力空间,反而增加系统扰动。

3、因此,如何提供一种基于机器学习的服务器算力调度方法是本领域技术人员亟需解决的问题。

技术实现思路

1、本发明的一个目的在于提出一种基于机器学习的服务器算力调度方法,本发明充分利用了异构资源统一表示、算力碎片空间建模、机器学习预测和调度前算力空间重构技术,详细描述了根据服务器集群中处理器、图形处理器、智能计算单元、内存、存储和网络带宽等资源状态生成当前算力碎片空间,预测不同候选调度方案执行后形成的未来算力碎片空间,并在未来连续算力空间无法满足任务需求时主动执行算力空间重构,再基于重构后的未来连续算力空间完成任务调度的过程,从而提高服务器集群中连续算力资源的利用程度和大算力任务的调度成功率。

2、根据本发明实施例的一种基于机器学习的服务器算力调度方法,包括如下步骤:

3、获取服务器集群中各服务器节点的异构资源状态以及待调度任务的任务需求,所述异构资源状态包括cpu、gpu、npu、内存、存储和网络带宽的占用状态及剩余状态;

4、根据异构资源状态进行统一算力表示,生成服务器集群的当前算力碎片空间;

5、根据任务需求和当前算力碎片空间生成多个候选调度方案,并将各候选调度方案和当前算力碎片空间输入机器学习模型,分别预测各候选调度方案执行后形成的未来算力碎片空间;

6、根据各未来算力碎片空间确定对应的未来连续算力空间,并判断各未来连续算力空间是否满足任务需求;

7、若存在满足任务需求的未来连续算力空间,则确定对应的候选调度方案作为目标调度方案,若不存在满足任务需求的未来连续算力空间,则根据各未来算力碎片空间生成算力空间重构方案,在任务分配前按照算力空间重构方案对已运行任务执行迁移、合并、资源释放和资源扩缩容,形成满足任务需求的重构后未来连续算力空间,并基于重构后未来连续算力空间确定目标调度方案;

8、根据目标调度方案将待调度任务分配至对应服务器节点,并控制对应服务器节点分配计算资源以执行待调度任务。

9、可选的,所述根据所述异构资源状态进行统一算力表示,生成服务器集群的当前算力碎片空间包括:

10、从异构资源状态中提取cpu、gpu、npu、内存、存储和网络带宽的占用状态及剩余状态,得到各服务器节点的异构资源状态集合;

11、对异构资源状态集合中的剩余状态进行标准化处理,得到各服务器节点的标准化剩余资源集合;

12、根据标准化剩余资源集合生成各服务器节点的统一算力表示;

13、根据统一算力表示确定各服务器节点中连续可分配资源段和离散资源段;

14、根据连续可分配资源段和所述离散资源段生成服务器集群的当前算力碎片空间。

15、可选的,所述根据连续可分配资源段和所述离散资源段生成服务器集群的当前算力碎片空间包括:

16、分别计算各服务器节点中每一连续可分配资源段的统一算力值,并汇总得到各服务器节点的连续算力值;

17、分别计算各服务器节点中每一离散资源段的统一算力值,并汇总得到各服务器节点的离散算力值;

18、根据连续算力值和离散算力值,计算各服务器节点的算力碎片化指数;

19、根据各服务器节点的算力碎片化指数,生成服务器集群的碎片化指数分布矩阵;

20、根据碎片化指数分布矩阵以及各服务器节点之间的资源拓扑关系,生成服务器集群的当前算力碎片空间。

21、可选的,所述根据任务需求和当前算力碎片空间生成多个候选调度方案包括:

22、根据任务需求提取待调度任务的cpu资源需求、gpu资源需求、npu资源需求、内存资源需求、存储资源需求、网络带宽需求及资源连续性约束;

23、根据当前算力碎片空间和碎片化指数分布矩阵,筛选满足资源连续性约束的服务器节点,生成候选服务器节点集合;

24、分别以各候选服务器节点作为目标节点,并结合任务迁移方式、资源释放方式、资源合并方式及资源扩缩容方式,生成多个候选调度方案;

25、分别计算各候选调度方案执行前后的统一算力表示、连续可分配资源段、离散资源段及算力碎片化指数,生成对应的调度状态特征;

26、将各候选调度方案与对应的调度状态特征进行组合,形成候选调度特征向量。

27、可选的,所述将各候选调度方案和当前算力碎片空间输入机器学习模型,分别预测各候选调度方案执行后形成的未来算力碎片空间包括:

28、将每一候选调度特征向量与当前算力碎片空间碎片化指数分布矩阵进行编码组合,生成对应候选调度方案的碎片空间预测输入向量,所述碎片空间预测输入向量包括候选服务器节点标识、统一算力表示、连续算力值、离散算力值、算力碎片化指数、资源拓扑位置、资源调整策略标识和资源连续性约束满足状态;

29、预先采集服务器集群中已执行调度任务对应的候选调度特征向量、调度执行前的算力碎片空间和调度执行前的碎片化指数分布矩阵,构建训练样本;

30、采集已执行调度任务在调度执行后形成的实际统一算力空间、实际连续可分配资源段、实际离散资源段和实际算力碎片化指数,构建与训练样本对应的训练标签;

31、利用训练样本和训练标签训练机器学习模型,并将碎片空间预测输入向量输入训练后的机器学习模型,分别输出各候选调度方案对应的未来统一算力空间;

32、根据各未来统一算力空间识别对应服务器节点中的未来连续可分配资源段和未来离散资源段,并根据未来连续可分配资源段和未来离散资源段计算对应的未来算力碎片化指数;

33、根据未来连续可分配资源段、未来离散资源段和未来算力碎片化指数,生成各候选调度方案对应的未来算力碎片空间;

34、从各未来算力碎片空间中提取满足待调度任务的任务需求的未来连续算力空间,并建立候选调度方案、碎片空间预测输入向量、未来算力碎片空间和未来连续算力空间之间的一一映射关系。

35、可选的,所述从各未来算力碎片空间中提取满足待调度任务的任务需求的未来连续算力空间,包括:

36、根据每一候选调度方案对应的未来算力碎片空间,获取各服务器节点中的未来连续可分配资源段,所述未来连续可分配资源段包括服务器节点标识、资源类型、连续资源规模和资源拓扑位置;

37、从任务需求中提取cpu需求量、gpu需求量、npu需求量、内存需求量、存储需求量、网络带宽需求量以及资源连续性约束,生成任务需求向量;

38、按照资源类型,将每一未来连续可分配资源段的连续资源规模与任务需求向量中对应资源需求量逐项匹配,得到资源规模匹配结果;

39、根据资源拓扑位置,将每一未来连续可分配资源段对应的服务器节点与资源连续性约束进行匹配,得到资源拓扑匹配结果;

40、当同一未来连续可分配资源段对应的资源规模匹配结果和资源拓扑匹配结果均满足任务需求向量时,将未来连续可分配资源段确定为未来连续算力空间;

41、当不存在满足任务需求向量的未来连续可分配资源段时,确定对应候选调度方案不存在满足待调度任务需求的未来连续算力空间,并根据资源规模匹配结果和资源拓扑匹配结果生成未满足资源缺口集合;

42、将各候选调度方案对应的未来连续算力空间和未满足资源缺口集合,与对应的未来算力碎片空间建立关联。

43、可选的,所述生成算力空间重构方案,包括:

44、在不存在满足任务需求向量的未来连续算力空间时,获取未满足资源缺口集合以及对应候选调度方案的未来算力碎片空间;

45、根据未满足资源缺口集合确定缺口资源类型、缺口资源量、缺口服务器节点和缺口拓扑位置;

46、根据未来算力碎片空间,在缺口服务器节点及其关联服务器节点中识别能够补足缺口资源量的未来离散资源段;

47、根据缺口拓扑位置和未来离散资源段,确定影响未来连续算力空间形成的已运行任务,生成待重构任务集合;

48、针对待重构任务集合,分别生成任务迁移、任务合并、资源释放和资源扩缩容对应的重构操作;

49、将重构操作与来离散资源段进行组合,生成多个算力空间重构方案,每个算力空间重构方案包括重构目标服务器节点、被重构任务、重构操作类型、释放资源类型、释放资源量和重构后资源拓扑位置;

50、根据每个算力空间重构方案执行后形成的未来连续可分配资源段,生成对应的重构后未来连续算力空间,并将算力空间重构方案与重构后未来连续算力空间建立对应关系。

51、可选的,所述生成多个算力空间重构方案之后,还包括对各算力空间重构方案进行重构触发判定具体包括:

52、获取每一算力空间重构方案对应的未满足资源缺口集合、未来算力碎片空间、重构后未来算力碎片空间以及重构后未来连续算力空间;

53、根据未满足资源缺口集合中的缺口资源类型和缺口资源量,以及重构后未来连续算力空间中对应资源类型的连续可分配资源量,确定每一算力空间重构方案的资源缺口闭合率;

54、根据未来算力碎片空间确定重构前算力碎片化指数和重构前连续算力规模,根据重构后未来算力碎片空间确定重构后算力碎片化指数,根据重构后未来连续算力空间确定重构后连续算力规模;

55、对资源缺口闭合率、重构前算力碎片化指数、重构后算力碎片化指数、重构前连续算力规模和重构后连续算力规模进行归一化处理,得到归一化后的资源缺口闭合率、重构前算力碎片化指数、重构后算力碎片化指数、重构前连续算力规模和重构后连续算力规模;

56、根据重构后未来连续算力空间对应的服务器节点、numa区域、gpu互连域和网络连接路径,确定每一算力空间重构方案的拓扑连续度;

57、根据归一化后的资源缺口闭合率、归一化后的重构前算力碎片化指数、归一化后的重构后算力碎片化指数、归一化后的重构前连续算力规模、归一化后的重构后连续算力规模以及拓扑连续度,计算第个算力空间重构方案的空间形成收益值;

58、根据每一算力空间重构方案中的重构操作类型、被重构任务数量、被重构任务占用资源量、释放资源类型、释放资源量和重构路径,确定对应的重构扰动代价,所述重构扰动代价包括任务迁移耗时、网络传输开销、任务中断风险和资源扩缩容开销;

59、根据每一算力空间重构方案的预先记录的重构操作执行记录,确定对应的重构成功率;

60、根据收益值、重构扰动代价和重构成功率,确定每一算力空间重构方案的重构触发结果;

61、当重构触发结果表征资源缺口闭合率满足缺口闭合条件、空间形成收益值大于重构扰动代价且重构成功率满足预设成功率条件时,将对应算力空间重构方案确定为可触发重构方案;

62、当存在多个可触发重构方案时,将空间形成收益值最大的可触发重构方案确定为最终算力空间重构方案,并将所述最终算力空间重构方案及其对应的重构后未来连续算力空间作为确定目标调度方案的输入;当不存在可触发重构方案时,不执行算力空间重构。

63、可选的,所述确定目标调度方案,包括:

64、当存在可触发重构方案时,获取最终算力空间重构方案及其对应的重构后未来连续算力空间,并将重构后未来连续算力空间确定为待匹配算力空间;

65、当不存在可触发重构方案且存在满足任务需求的未来连续算力空间时,获取对应候选调度方案及其未来连续算力空间,并将未来连续算力空间确定为待匹配算力空间;

66、从待匹配算力空间中提取可分配服务器节点、可分配资源类型、连续资源规模和资源拓扑位置;

67、将可分配服务器节点、可分配资源类型、连续资源规模和资源拓扑位置与待调度任务的任务需求进行匹配,生成调度匹配结果;

68、根据调度匹配结果确定用于执行待调度任务的目标服务器节点、目标资源类型、目标连续资源规模和目标资源拓扑位置;

69、根据目标服务器节点、目标资源类型、目标连续资源规模和目标资源拓扑位置生成目标调度方案;

70、根据目标调度方案生成资源分配指令,所述资源分配指令包括目标服务器节点标识、资源类型、资源数量、资源拓扑位置和任务启动参数,并将所述资源分配指令发送至对应服务器节点。

71、可选的,所述将资源分配指令发送至对应服务器节点之后,还包括:

72、采集对应服务器节点按照资源分配指令执行待调度任务后的实际资源占用状态、实际连续可分配资源段、实际离散资源段、实际算力碎片化指数和任务执行状态;

73、根据实际连续可分配资源段、实际离散资源段和实际算力碎片化指数,生成实际算力碎片空间;

74、根据目标调度方案,从建立的一一映射关系中获取对应的碎片空间预测输入向量和未来算力碎片空间;

75、将实际算力碎片空间与未来算力碎片空间进行比对,生成碎片空间预测偏差数据;

76、当目标调度方案基于最终算力空间重构方案确定时,采集最终算力空间重构方案的实际重构操作结果,并根据实际重构操作结果更新重构操作执行记录和重构成功率;

77、将碎片空间预测输入向量、未来算力碎片空间、实际算力碎片空间和碎片空间预测偏差数据组合,生成调度反馈样本;

78、利用调度反馈样本更新机器学习模型。

79、本发明的有益效果是:

80、本发明通过结合异构资源统一算力表示、算力碎片空间建模、机器学习预测和调度前算力空间重构技术,将服务器集群中的处理器、图形处理器、智能计算单元、内存、存储和网络带宽等多类型资源转换为统一的算力空间,并进一步识别连续可分配资源段和离散资源段,使系统能够准确感知“总资源充足但连续可用算力不足”的隐性资源浪费问题,从而提高异构服务器集群中资源状态识别的完整性和调度依据的准确性。

81、本发明通过机器学习模型分别预测不同候选调度方案执行后形成的未来算力碎片空间,并基于未来连续算力空间是否满足待调度任务需求来确定目标调度方案,使调度过程不再仅依赖当前空闲资源状态,而是能够提前判断不同调度方案对未来资源空间的影响,减少因盲目分配任务导致的资源进一步碎片化,提高大算力任务、图形处理任务和人工智能训练任务在异构服务器集群中的调度成功率。

82、本发明通过在预测未来连续算力空间无法满足任务需求时,于任务正式分配前主动生成算力空间重构方案,并结合资源缺口闭合率、算力碎片化指数变化、连续算力规模变化和拓扑连续度对重构方案进行判断,使任务迁移、资源释放、任务合并和资源扩缩容不再仅以资源不足或负载过高为触发条件,而是以形成可调度的未来连续算力空间为目标,从而减少无效迁移和不必要的系统扰动,提高服务器集群算力资源重组的合理性和稳定性。

83、本发明通过采集任务执行后的实际资源占用状态、实际算力碎片空间和重构执行结果,并将其作为调度反馈样本更新机器学习模型,使系统能够基于实际调度结果持续修正未来算力碎片空间预测结果和重构判断结果,提高服务器算力调度方法在不同业务负载、不同服务器拓扑和不同任务类型下的自适应能力。