本发明涉及数据处理,尤其涉及一种基于异构规划的算力调度策略确定方法及系统。
背景技术:
1、随着神经网络等算法技术的提高和普及,越来越多的用户开始采用线上的算力资源来执行自定义的一些算法训练任务或算法执行任务,相应的,也有越来越多的平台开始整合线上的多个不同网络模块的算力资源为用户提供相应的算力服务,这对算力平台如何有效调度不同网络模块的算力资源以更好地匹配用户算力需求提出了更高的要求。现有技术在进行算力调度时,大部分仅通过用户的直接指定来确定算力资源,或是通过简单的优先级调度规则来实现算力调度,并没有充分结合网络模块的历史运算记录和性能参数来调度算力资源,因此调度效果较差,资源利用率低,无法给用户带来更好的算力使用体验。可见,现有技术存在缺陷,亟待解决。
技术实现思路
1、本发明所要解决的技术问题在于,提供一种基于异构规划的算力调度策略确定方法及系统,能够提高算力网络中不同网络模块的算力调度效果和效率,提高算力资源的利用率,给用户更好的算力使用体验。
2、为了解决上述技术问题,本发明第一方面公开了一种基于异构规划的算力调度策略确定方法,所述方法包括:
3、获取同一算力网络中多个网络模块接受到的算力请求集合;
4、根据每一所述算力请求集合的所有算力请求的请求参数,确定每一所述网络模块对应的请求压力;
5、根据每一所述网络模块对应的历史运算记录和模块性能参数,确定每一所述网络模块对应的运算宽容度;
6、根据所述请求压力和所述运算宽容度,确定所有所述网络模块对应的算力调度策略。
7、作为一个可选的实施方式,在本发明第一方面中,所述请求参数包括请求任务数据量、请求任务计算量、请求任务类型、请求任务数据类型、请求用途、请求任务应用环境和请求任务编程语言中的至少一种。
8、作为一个可选的实施方式,在本发明第一方面中,所述历史运算记录包括所述网络模块之间的多个历史数据传输记录和所述网络模块的多个历史数据计算记录。
9、作为一个可选的实施方式,在本发明第一方面中,所述模块性能参数包括所述网络模块内的硬件设备参数、硬件设备型号、硬件设备间连接方式、硬件设备工作协同方式以及所述网络模块对应的历史硬件设备占用率、历史硬件设备温度和历史硬件设备湿度。
10、作为一个可选的实施方式,在本发明第一方面中,所述根据每一所述算力请求集合的所有算力请求的请求参数,确定每一所述网络模块对应的请求压力,包括:
11、对于每一所述网络模块的所述算力请求集合的每一算力请求,将该算力请求的请求参数输入至训练好的负载预测神经网络,以得到该算力请求对应的请求负载;所述负载预测神经网络通过包括有多个训练算力请求参数和对应的负载标注的训练数据集训练得到;
12、计算该算力请求集合中的所有所述算力请求的所述请求负载的加权求和平均值,得到该网络模块对应的请求压力。
13、作为一个可选的实施方式,在本发明第一方面中,所述根据每一所述网络模块对应的历史运算记录和模块性能参数,确定每一所述网络模块对应的运算宽容度,包括:
14、对于每一所述网络模块,根据该网络模块对应的历史运算记录,计算该网络模块的历史运算能力参数;
15、将该网络模块的模块性能参数输入至训练好的运算能力预测神经网络,得到该网络模块对应的预测运算能力参数;所述运算能力预测神经网络通过包括有多个训练模块性能参数和对应的运算能力标注的训练数据集训练得到;
16、计算所述历史运算能力参数和所述预测运算能力参数的加权求和平均值,得到该网络模块对应的运算宽容度。
17、作为一个可选的实施方式,在本发明第一方面中,所述根据该网络模块对应的历史运算记录,计算该网络模块的历史运算能力参数,包括:
18、计算该网络模块对应的历史运算记录中每一历史数据传输记录的传输速度的平均值,得到该网络模块对应的数据传输参数;
19、计算该网络模块对应的所述历史数据计算记录中的所有数据计算任务的完成用时的平均值,得到该网络模块对应的数据计算参数;
20、计算所述数据传输参数和所述数据计算参数的加权求和平均值,得到该网络模块的历史运算能力参数。
21、作为一个可选的实施方式,在本发明第一方面中,所述根据所述请求压力和所述运算宽容度,确定所有所述网络模块对应的算力调度策略,包括:
22、计算每一所述网络模块的所述运算宽容度和所述请求压力的比值,得到每一所述网络模块对应的承载参数;
23、设定目标函数为分配方案中每一所述网络模块对应的分配的算力请求数量达到最小;
24、设定限制条件包括所述承载参数越高的所述网络模块分配的算力请求数量越高、每一所述网络模块分配的算力请求数量小于预设的数量阈值以及所述承载参数低于预设的参数阈值的所述网络模块不分配算力请求;
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、存储有可执行程序代码的存储器;
52、与所述存储器耦合的处理器;
53、所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的基于异构规划的算力调度策略确定方法中的部分或全部步骤。
54、本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的基于异构规划的算力调度策略确定方法中的部分或全部步骤。
55、与现有技术相比,本发明实施例具有以下有益效果:
56、本发明能够基于网络模块接收到的算力请求集合确定对应的请求压力,再基于网络模块的历史运算记录和性能参数确定运算宽容度,以此来综合确定更合理和稳定的算力调度策略,从而能够提高算力网络中不同网络模块的算力调度效果和效率,提高算力资源的利用率,给用户更好的算力使用体验。