面向异构计算系统的故障节点切换方法、装置和设备与流程

未命名 09-12 阅读:113 评论:0


1.本发明涉及多元异构计算技术领域,特别是涉及面向异构计算系统的故障节点切换方法、装置和设备。


背景技术:

2.随着人工智能(artificial intelligence,ai)技术的发展,大型神经网络模型的优势逐渐体现。在该背景下,学界业界开始大量投入研究参数量更大的神经网络模型,这也使大型神经网络模型的训练难度快速增长。目前为了实现大型神经网络模型的训练,普遍使用分布式训练的方式,将训练数据或大型网络模型进行拆分,并将拆分后的数据与子训练任务部署到多个计算芯片上,使大型神经网络模型的训练成为可能。
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.图1为本发明实施例提供的一种异构计算系统的示意图;图2为本发明实施例提供的一种异构计算系统上ring-allreduce算法进行分布式训练的示意图;图3为本发明实施例提供的一种面向异构计算系统的故障节点切换方法的流程图;图4为本发明实施例提供的一种建立监控信息的方法的流程图;图5为本发明实施例提供的一种确定各可用计算节点的迭代耗时的方法的流程图;图6为本发明实施例提供的一种面向异构计算系统的故障节点切换装置的结构示意图;图7为本发明实施例提供的一种电子设备的结构图。
具体实施方式
50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
51.本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”,以及与“包括”和“具有”相关的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
52.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
53.当有计算节点出现故障时,比较好的方式是选择一个替换节点,然后将当前已有的训练成果同步给该替换节点,从而继续进行计算。但是如何在异构计算系统的复杂环境中,在尽量不浪费计算资源并且尽量不影响分布式训练的计算效率的情况下,选择出最优的替换节点,是一个关键问题,目前并没有解决该问题的技术方案。
54.图1为本发明实施例提供的一种异构计算系统的示意图,包括多个异构算力,异构算力之间的通信可以是服务器内通信,也可以是服务器间通信。一个异构算力可以看作一个计算节点。图1是以4个异构算力为例,分别为异构算力1至异构算力4。
55.图2为本发明实施例提供的一种异构计算系统上ring-allreduce算法进行分布式训练的示意图。ring-allreduce算法会将多个算力组成一个通信环,其中通信环上的边代表两个计算节点之间的通信链路。图2是以三个异构算力组成的通信环为例,分别为异构算力1、异构算力2和异构算力3,三个异构算力会在每次分布式训练的迭代(step)中进行参数同步,从而完成分布式训练。一个异构算力即为一个计算节点,可以见得如果其中一个计算节点出现故障,这个通信环就会被破坏,导致训练任务无法继续进行。
56.故此,本发明提出了一种面向异构计算系统的故障节点切换方案,针对常用的通信环(ring-allreduce)分布式训练任务,在训练过程中如果出现有需要节点进行切换时,例如节点故障,通信故障等,在同时考虑计算、网络资源的情况下选择出最优的替换节点,
满足尽量不浪费计算资源并且尽量不影响分布式训练的计算效率。本方案可以实时监控整个异构计算系统,一旦有分布式训练任务受到故障节点影响,便可以选择出最优的替换节点,并将当前已有的训练成果同步给该替换节点,从而保证任务继续运行。
57.接下来,详细介绍本发明实施例所提供的一种面向异构计算系统的故障节点切换方法。图3为本发明实施例提供的一种面向异构计算系统的故障节点切换方法的流程图,该方法包括:s101:当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息。
58.在本发明实施例中,每个异构算力即为一个计算节点。异构算力的类型可以有多种。根据实际训练需求,在执行分布式训练时,可以调用多种类型的异构算力,每种类型的异构算力可以有多个。
59.在本发明实施例中,可以定时检测每个计算节点的运行信息,运行信息可以包括每个计算节点的存活信息、峰值算力以及运行分布式训练任务的信息。运行分布式训练任务的信息可以包括任务运行状态、计算耗时以及运行分布式训练任务的单步耗时。
60.存活信息用于表征计算节点是否存活,在实际应用中,可以通过定时发送计算节点的心跳信息来实现。在正常检测到心跳信息的情况下,说明存活信息正常,此时计算节点运行正常;当检测不到心跳信息的情况下,说明存活信息异常,此时计算节点出现了故障。
61.每个计算节点的峰值算力可以根据不同异构算力的产品手册中的信息提前设定好,相同算力的峰值算力值相同。
62.运行分布式训练任务的信息可以包括每个计算节点的任务运行状态,每个节点所运行的分布式训练任务的子任务的每一个迭代的平均耗时(包括计算时间与通信时间),以及不同异构算力计算该分布式训练任务的每一个迭代的计算耗时。
63.运行分布式训练任务的信息可以通过各人工智能计算框架内置的性能测试工具(profiler)获取,例如深度学习框架(pytorch)和端到端开源机器学习平台(tensorflow)都内置profiler。也可以通过在异构计算系统监控模块开发特定的性能测试模块来实现运行分布式训练任务的信息的获取。
64.任务运行状态用于表征计算节点是否正在运行分布式训练任务。
65.在实际应用中,当检测到存活信息异常的故障节点的情况下,可以利用网络测试工具测试异构计算系统中各计算节点之间的通信带宽;按照带宽邻接矩阵的格式,记录各计算节点之间的通信带宽。
66.s102:根据每个计算节点的存活信息和任务运行状态,确定出异构计算系统中的可用计算节点。
67.当出现故障节点时,为了实现故障节点的替换,可以初步选取当前处于正常运行状态并且未执行分布式训练任务的计算节点作为可用计算节点。存活信息可以分为有效和失效两种状态,存活信息有效的情况下,说明计算节点正常运行;存活信息失效的情况下,说明计算节点出现了异常。
68.基于存活信息可以了解计算节点是否正常运行,基于任务运行状态可以了解计算节点是否正在执行分布式训练任务。因此,在实际应用中,可以从异构计算系统中筛选出存活信息有效并且未执行分布式训练任务的可用计算节点。
69.s103:依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时。
70.可用计算节点的个数往往较多,为了选取出合适的替换节点,可以对各计算节点的计算性能和网络资源进行综合分析,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时。
71.计算性能可以包括计算节点执行分布式训练任务产生的计算耗时。
72.网络资源可以通过计算节点的通信耗时表征,各计算节点的通信耗时可以由各计算节点的参数量和网络带宽信息确定得到。
73.s104:基于各可用计算节点的迭代耗时、峰值算力以及故障节点所对应的分布式训练任务的平均耗时,从各可用计算节点中选取出替换节点。
74.为了不影响分布式训练的计算效率,可以将故障节点所对应的分布式训练任务的平均耗时作为选取替换节点的依据。同时为了尽量不浪费计算资源,可以结合各可用计算节点的峰值算力确定替换节点。
75.在本发明实施例中,可以从各可用计算节点中选取出迭代耗时小于或等于故障节点所对应的分布式训练任务的平均耗时的待替换节点;将峰值算力最小的待替换节点作为替换节点。
76.考虑到实际应用中,可能会存在所有可用计算节点的迭代耗时均大于故障节点所对应的分布式训练任务的平均耗时的情况,针对于该种情况,可以将取值最小的迭代耗时所对应的可用计算节点作为替换节点。
77.在实际应用中,也有可能出现不具有可用计算节点的情况下,针对于该种情况,由于没有可用的替换节点代替故障节点工作,则可以输出无替换节点的提示信息。
78.s105:将故障节点所对应的训练模型和参数下发至替换节点,并向替换节点部署故障节点所属的通信环和环连接顺序,以使得替换节点代替故障节点工作。
79.为了保证替换节点能够顺利代替故障节点的工作,可以从故障节点所属通信环中选取存活的计算节点;复制存活的计算节点的当前训练模型和参数;在选取出替换节点后,将当前训练模型和参数下发至替换节点。并向替换节点部署故障节点所属的通信环和环连接顺序,以使得替换节点代替故障节点工作。
80.考虑到实际应用中,会存在不具有可用计算节点的情况下,针对于该种情况,可以将故障节点从其所属的通信环中删除,并依据通信环的剩余计算节点以及配置信息,重新建立新的通信环。
81.由上述技术方案可以看出,当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息;为了实现故障节点的替换,可以根据每个计算节点的存活信息和任务运行状态,确定出异构计算系统中的可用计算节点。依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时。基于各可用计算节点的迭代耗时、峰值算力以及故障节点所对应的分布式训练任务的平均耗时,从各可用计算节点中选取出替换节点;将故障节点所对应的训练模型和参数下发至替换节点,并向替换节点部署故障节点所属的通信环和环连接顺序,以使得替换节点代替故障节点工作。本发明的有益效果在于,各可用计算节点的迭代耗时以及故障节点所对应的分布式训练任务的平均耗时是影响分布式训练的计算效率的重要参数,各可
用计算节点的峰值算力是保证不浪费计算资源的重要参数。基于各可用计算节点的迭代耗时、峰值算力以及故障节点所对应的分布式训练任务的平均耗时,从各可用计算节点中选取出替换节点,保证了在尽量不浪费计算资源并且尽量不影响分布式训练的计算效率的情况下,可以选择出最优的替换节点。通过将当前已有的训练成果同步给该替换节点,保证了训练任务的继续运行。
82.在本发明实施例中,为了能够直观的了解异构计算系统中各计算节点的情况,可以基于所需关注的信息建立监控信息,定期更新异构计算系统的监控信息。
83.监控信息可以包括每个计算节点的地址信息、异构算力类型标识、峰值算力、存活信息、任务运行状态、计算耗时、任务标识、参数量以及每个分布式训练任务对应的平均耗时。
84.图4为本发明实施例提供的一种建立监控信息的方法的流程图,该方法包括:s201:获取分布式训练任务的训练信息。
85.其中,训练信息可以包括分布式训练任务的算力需求、参数量、计算节点类型、异构计算系统中每个计算节点的地址信息。
86.由于通信环采用数据并行方式进行训练,每个计算节点分配的训练任务的模型相同,因此算力需求可以是训练任务的模型对应的算力需求,参数量可以是训练任务的模型对应的参数量。在实际应用中,可以采用符号s表示分布式训练任务的算力需求。w表示分布式训练任务的参数量。
87.计算节点可以为计算芯片或计算卡,计算节点类型用于表示异构计算系统中所使用的计算芯片或计算卡的类型。例如,寒武纪mlu370、英伟达a100等。
88.计算节点的地址信息可以是网络协议(internet protocol,ip)信息。
89.为了便于后续实现故障节点的替换,在训练信息中还可以包括通信环配置信息,ring-allreduce配置信息可以包括环连接的计算节点及其顺序。例如,按照通信顺序依次由计算节点1、计算节点2和计算节点3组成的通信环,通信环配置信息可以表示为ip1-》ip2-》ip3-》ip1。
90.为了便于异构计算系统向不同计算节点分配训练任务,训练信息中可以包括所需要训练的模型的全部信息,例如训练任务的模型中各层的细节,各层的激活函数,训练模型用的损失函数(loss)等。在实际应用中,可以使用人工智能计算框架中自带的统计工具,例如网络分析工具(pytorch)中的轻量级网络参数统计工具(torchstat),也可以自行开发工具并利用不同层对应的数学公式计算,得到训练信息。
91.s202:获取每个计算节点的运行信息。
92.其中,运行信息可以包括每个计算节点的存活信息、峰值算力、任务运行状态、计算耗时以及运行分布式训练任务的单步耗时。
93.存活信息用于表征计算节点是否正常运行,任务运行状态用于表征计算节点是否正在执行分布式训练任务。
94.每个计算节点有其对应的峰值算力,每个计算节点的峰值算力可以根据不同异构算力的产品手册中的信息提前设定好,相同算力的峰值算力值相同。可以采用符号flops表示计算节点的峰值算力。为了区分不同计算节点,可以针对flops设置不同的下标用于表征不同的计算节点,例如,flops
ip1
表示第一个计算节点,例如flops
ipm
表示第m个计算节点。
95.计算耗时可以是基于计算节点的计算性能执行任务时产生的计算耗时。考虑到同类的计算节点的性能相同,因此针对于同类型的计算节点,只需从同类型的计算节点中选取一个计算节点执行测试任务,获取其计算耗时即可。
96.s203:依据每个分布式训练任务下所对应的计算节点的单步耗时,确定出每个分布式训练任务对应的平均耗时。
97.在实际应用中,可以基于每个计算节点的单步耗时及其对应的分布式训练任务,确定出每个分布式训练任务下单步耗时最长的计算节点;将每个单步耗时最长的计算节点的单步耗时平均值作为其对应的分布式训练任务的平均耗时。
98.由于ring-allreduce的单步耗时受制于最慢的计算节点,因此为了确定运行分布式训练任务的平均耗时,可以根据收集到的运行信息,得到单步耗时最慢的一个计算节点,然后得到最慢一个计算节点的分布式训练任务的子任务的每一个迭代的所有单步耗时统计,最后取平均作为运行分布式训练任务的平均耗时。
99.s204:根据每个分布式训练任务的平均耗时以及每个计算节点所对应的训练信息和运行信息,构建出监控信息。
100.结合上述介绍可知,训练信息可以包括分布式训练任务的算力需求、参数量、计算节点类型、异构计算系统中每个计算节点的地址信息。运行信息可以包括每个计算节点的存活信息、峰值算力、任务运行状态、计算耗时以及运行分布式训练任务的单步耗时。所有计算节点的峰值算力的总和可以作为分布式训练任务的算力需求。
101.基于运行分布式训练任务的单步耗时可以确定出每个分布式训练任务的平均耗时。
102.每个在异构计算系统中执行的分布式训练任务都有一个唯一的训练任务标识(identity,id),用于区分不同的分布式训练任务。
103.因此在本发明实施例中,监控信息可以包括每个计算节点对应的计算节点类型、地址信息、存活信息、峰值算力、任务运行状态、计算耗时、分布式训练任务id、分布式训练任务的算力需求、分布式训练任务的参数量以及运行分布式训练任务的平均耗时。
104.在本发明实施例中,通过构建监控信息,可以方便异构计算系统对各计算节点的管理。并且基于监控信息可以及时了解各计算节点的运行情况,在计算节点出现故障时能够及时发现。
105.图5为本发明实施例提供的一种确定各可用计算节点的迭代耗时的方法的流程图,该方法包括:s301:依据故障节点所对应的分布式训练任务类型,从监控信息中确定出匹配的目标参数量。
106.在本发明实施例中,为了准确的评估计算节点执行分布式训练任务产生的耗时,可以综合考虑计算节点的计算性能和网络资源。基于计算性能产生的耗时称作计算耗时,基于网络资源产生的耗时称作通信耗时。通过将计算节点的计算耗时和通信耗时进行汇总,可以得到计算节点总的耗时,为了便于区分,可以将该总的耗时称作迭代耗时。
107.通信耗时可以基于计算节点执行分布式训练任务的参数量以及网络带宽信息确定得到。为了计算通信耗时,需要先获取执行分布式训练任务的参数量。
108.不同分布式训练任务对应的参数量有所不同,为了便于区分,可以将故障节点所
对应的分布式训练任务的参数量称作目标参数量。
109.考虑到监控信息中记录了每个计算节点在分布式训练任务下对应的参数量。为了能够替换故障节点的工作,可以依据故障节点所对应的分布式训练任务类型,从监控信息中确定出匹配的目标参数量。
110.s302:从网络带宽信息中确定出前向计算节点与目标可用计算节点之间的上行通信带宽,以及目标可用计算节点与后向计算节点之间的下行通信带宽。
111.每个可用计算节点的迭代耗时的确定方式相同。在本发明实施例中,以所有可用计算节点中的任意一个可用计算节点为例展开介绍。为了便于区分,可以将任意一个可用计算节点称作目标可用计算节点。
112.网络带宽信息包括上行通信带宽和下行通信带宽。
113.为了评估可用计算节点替代故障节点执行分布式训练任务产生的通信耗时,可以从网络带宽信息中确定出前向计算节点与目标可用计算节点之间的上行通信带宽,以及目标可用计算节点与后向计算节点之间的下行通信带宽。
114.其中,前向计算节点为与故障节点相邻的前一个计算节点;后向计算节点为与故障节点相邻的后一个计算节点。
115.s303:基于目标参数量、上行通信带宽和下行通信带宽,确定出目标可用计算节点的通信耗时。
116.在本发明实施例中,根据目标参数量与下行通信带宽,可以确定出目标可用计算节点的下行通信耗时;根据目标参数量与上行通信带宽,可以确定出目标可用计算节点的上行通信耗时;从下行通信耗时和上行通信耗时中选取最大值作为目标可用计算节点的通信耗时。
117.在实际应用中,可以将目标参数量与下行通信带宽的比值作为目标可用计算节点的下行通信耗时。将目标参数量与上行通信带宽的比值作为目标可用计算节点的上行通信耗时。
118.s304:依据监控信息确定出故障节点所对应的分布式训练任务类型的计算耗时。
119.在本发明实施例中,可以从监控信息中查询故障节点所对应的分布式训练任务类型的计算耗时。
120.考虑到执行同一类分布式训练任务的计算节点可能有多个,每个计算节点有其对应的计算耗时,因此在故障节点所对应的分布式训练任务类型的计算耗时为多个的情况下,可以将多个计算耗时的平均值作为故障节点所对应的分布式训练任务类型最终的计算耗时。
121.在实际应用中,也可能存在监控信息中不存在与故障节点所对应的分布式训练任务类型匹配的计算耗时,针对于该种情况下,可以基于故障节点所对应的分布式训练任务的算力需求以及目标可用计算节点的峰值算力,确定出故障节点所对应的分布式训练任务类型的计算耗时。
122.在实际应用中,可以将故障节点所对应的分布式训练任务的算力需求与目标可用计算节点的峰值算力的比值作为故障节点所对应的分布式训练任务类型的计算耗时。
123.s305:根据目标可用计算节点的通信耗时和计算耗时,确定出目标可用计算节点的迭代耗时。
124.在本发明实施例中,可以将目标可用计算节点的通信耗时和计算耗时的和值作为迭代耗时。
125.举例说明,假设可用计算节点有m个,ip信息依次为ip1至ipm,每个可用计算节点的迭代耗时依次为t
id1,ip1
,t
id1,ip2

……
,t
id1,ipm
。其中,下标id1表示故障节点所对应的分布式训练任务的id。
126.步骤1:确定所有可用计算节点的迭代耗时。
127.以任意一个可用计算节点即目标可用计算节点的迭代耗时t
id,ipx
为例,x取值为1至m中的任意一个数值,可以按照如下公式,计算得到迭代耗时:;其中,表示目标可用计算节点的迭代耗时,表示目标可用计算节点的通信耗时,表示目标可用计算节点的计算耗时。
128.;其中,表示故障节点所对应的分布式训练任务的参数量,表示前向计算节点与目标可用计算节点之间的上行通信带宽,下标iplast表示前向计算节点的ip即与故障节点相邻的前一个计算节点的ip,表示目标可用计算节点与后向计算节点之间的下行通信带宽,下标ipnext表示后向计算节点的ip即与故障节点相邻的后一个计算节点的ip。
129.在本发明实施例中,取上行通信耗时和下行通信耗时的最大值作为通信耗时。
130.常见的计算节点类型有寒武纪mlu370和英伟达a100,假设故障节点的计算节点类型为寒武纪mlu370,对于可用计算节点的计算耗时,如果计算节点类型为寒武纪mlu370的可用计算节点对应的计算耗时在异构计算系统的监控信息中存在,则可以直接从监控信息中获取计算耗时。
131.如果计算节点类型为寒武纪mlu370的可用计算节点对应的计算耗时在异构计算系统的监控信息中不存在,则可以按照如下公式,确定出计算耗时:;其中,分布式训练任务id1的算力需求。表示目标可用计算节点ipx的峰值算力。
132.步骤2:对所有可用计算节点的迭代耗时从大到小排序。
133.步骤3:从监控信息中查询故障节点对应的分布式训练任务的平均耗时,假设为。从所有可用计算节点中找到的所有可用计算节点,可以将这些计算节
点称作待替换节点。从所有待替换节点取其峰值算力最小的待替换节点作为最终的替换节点,将该替换节点的ip作为输出,以便于异构计算系统可以基于ip定位到该替换节点,从而利用该替换节点代替故障节点继续工作。
134.如果所有可用计算节点中不存在的可用计算节点,则进入步骤4。
135.考虑到ring-allreduce的耗时取决于所有节点中最慢的,因此步骤3的目的是在不影响计算效率的情况下,选择最节约算力的替换节点。
136.步骤4:找到所有可用计算节点中迭代耗时最小的可用计算节点,将该可用计算节点作为替换节点。
137.如果不存在可用计算节点,则返回null,代表没有找到可用替换节点。
138.在本发明实施例中,可以实时监控整个异构计算系统,一旦有分布式训练任务受到故障节点的影响,便可以选择出最优的替换节点,并将故障节点当前已有的训练成果同步给该替换节点,从而保证任务继续运行。在异构计算系统的复杂环境中,为了满足尽量不浪费计算资源并且尽量不影响分布式训练的计算效率,可以同时考虑计算性能和网络资源,选择出最优的替换节点来继续进行分布式训练任务。
139.考虑到实际应用中,故障节点的个数可能有多个,针对于这种情况,可以按照上述处理流程依次选取各故障节点的替换节点,利用该替换节点代替故障节点的工作后,再执行下一个故障节点的替换。
140.在本发明实施例中,当检测到存活信息异常的故障节点的情况下,可以判断故障节点的个数是否为多个。在故障节点的个数不为多个的情况下,执行依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时的步骤。在故障节点的个数为多个的情况下,选取任意一个目标故障节点执行依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署目标故障节点的分布式训练后的迭代耗时的步骤,在利用替换节点代替目标故障节点的工作后,执行下一个故障节点的替换,直至完成所有故障节点的替换。
141.在故障节点为多个的情况下,通过依次选取替换节点,可以有序的实现故障节点的替换,保证了分布式训练任务的有序运行。
142.图6为本发明实施例提供的一种面向异构计算系统的故障节点切换装置的结构示意图,包括收集单元41、第一确定单元42、第二确定单元43、选取单元44、下发单元45和部署单元46;收集单元41,用于当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息;第一确定单元42,用于根据每个计算节点的存活信息和任务运行状态,确定出异构计算系统中的可用计算节点;第二确定单元43,用于依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时;选取单元44,用于基于各可用计算节点的迭代耗时、峰值算力以及故障节点所对应的分布式训练任务的平均耗时,从各可用计算节点中选取出替换节点;下发单元45,用于将故障节点所对应的训练模型和参数下发至替换节点;
部署单元46,用于向替换节点部署故障节点所属的通信环和环连接顺序,以使得替换节点代替故障节点工作。
143.在一些实施例中,还包括更新单元;更新单元,用于定期更新异构计算系统的监控信息;其中,监控信息包括每个计算节点的地址信息、异构算力类型标识、峰值算力、存活信息、任务运行状态、计算耗时、任务标识、参数量以及每个分布式训练任务对应的平均耗时。
144.在一些实施例中,针对于监控信息的建立过程,装置包括第一获取单元、第二获取单元、第三确定单元和构建单元;第一获取单元,用于获取分布式训练任务的训练信息;其中,训练信息包括分布式训练任务的算力需求、参数量、计算节点类型、异构计算系统中每个计算节点的地址信息;第二获取单元,用于获取每个计算节点的运行信息;其中,运行信息包括每个计算节点的存活信息、峰值算力、任务运行状态、计算耗时以及运行分布式训练任务的单步耗时;第三确定单元,用于依据每个分布式训练任务下所对应的计算节点的单步耗时,确定出每个分布式训练任务对应的平均耗时;构建单元,用于根据每个分布式训练任务的平均耗时以及每个计算节点所对应的训练信息和运行信息,构建出监控信息。
145.在一些实施例中,第三确定单元用于基于每个计算节点的单步耗时及其对应的分布式训练任务,确定出每个分布式训练任务下单步耗时最长的计算节点;将每个单步耗时最长的计算节点的单步耗时平均值作为其对应的分布式训练任务的平均耗时。
146.在一些实施例中,第二确定单元包括参数量确定子单元、通信带宽确定子单元、通信耗时确定子单元、计算耗时确定子单元和迭代耗时确定子单元;参数量确定子单元,用于依据故障节点所对应的分布式训练任务类型,从监控信息中确定出匹配的目标参数量;通信带宽确定子单元,用于从网络带宽信息中确定出前向计算节点与目标可用计算节点之间的上行通信带宽,以及目标可用计算节点与后向计算节点之间的下行通信带宽;其中,前向计算节点为与故障节点相邻的前一个计算节点;后向计算节点为与故障节点相邻的后一个计算节点;目标可用计算节点为所有可用计算节点中的任意一个可用计算节点;通信耗时确定子单元,用于基于目标参数量、上行通信带宽和下行通信带宽,确定出目标可用计算节点的通信耗时;计算耗时确定子单元,用于依据监控信息确定出故障节点所对应的分布式训练任务类型的计算耗时;迭代耗时确定子单元,用于根据目标可用计算节点的通信耗时和计算耗时,确定出目标可用计算节点的迭代耗时。
147.在一些实施例中,通信耗时确定子单元用于根据目标参数量与下行通信带宽,确定出目标可用计算节点的下行通信耗时;根据目标参数量与上行通信带宽,确定出目标可用计算节点的上行通信耗时;
从下行通信耗时和上行通信耗时中选取最大值作为目标可用计算节点的通信耗时。
148.在一些实施例中,通信耗时确定子单元用于将目标参数量与下行通信带宽的比值作为目标可用计算节点的下行通信耗时。
149.在一些实施例中,通信耗时确定子单元用于将目标参数量与上行通信带宽的比值作为目标可用计算节点的上行通信耗时。
150.在一些实施例中,计算耗时确定子单元用于从监控信息中查询故障节点所对应的分布式训练任务类型的计算耗时;在故障节点所对应的分布式训练任务类型的计算耗时为多个的情况下,将多个计算耗时的平均值作为故障节点所对应的分布式训练任务类型最终的计算耗时。
151.在一些实施例中,计算耗时确定子单元还用于在监控信息中不存在与故障节点所对应的分布式训练任务类型匹配的计算耗时的情况下,基于故障节点所对应的分布式训练任务的算力需求以及目标可用计算节点的峰值算力,确定出故障节点所对应的分布式训练任务类型的计算耗时。
152.在一些实施例中,计算耗时确定子单元用于将故障节点所对应的分布式训练任务的算力需求与目标可用计算节点的峰值算力的比值作为故障节点所对应的分布式训练任务类型的计算耗时。
153.在一些实施例中,选取单元用于从各可用计算节点中选取出迭代耗时小于或等于故障节点所对应的分布式训练任务的平均耗时的待替换节点;将峰值算力最小的待替换节点作为替换节点。
154.在一些实施例中,还包括作为单元;作为单元,用于在各可用计算节点的迭代耗时均大于故障节点所对应的分布式训练任务的平均耗时的情况下,将取值最小的迭代耗时所对应的可用计算节点作为替换节点。
155.在一些实施例中,还包括输出单元;输出单元,用于在不具有可用计算节点的情况下,则输出无替换节点的提示信息。
156.在一些实施例中,还包括删除单元和建立单元;删除单元,用于在不具有可用计算节点的情况下,将故障节点从其所属的通信环中删除;建立单元,用于依据通信环的剩余计算节点以及配置信息,重新建立新的通信环。
157.在一些实施例中,下发单元用于从故障节点所属通信环中选取存活的计算节点;复制存活的计算节点的当前训练模型和参数;在选取出替换节点后,将当前训练模型和参数下发至替换节点。
158.在一些实施例中,收集单元用于当检测到存活信息异常的故障节点的情况下,利用网络测试工具测试异构计算系统中各计算节点之间的通信带宽;按照带宽邻接矩阵的格式,记录各计算节点之间的通信带宽。
159.在一些实施例中,第一确定单元用于从异构计算系统中筛选出存活信息有效并且未执行分布式训练任务的可用计算节点。
160.在一些实施例中,还包括判断单元和故障节点选取单元;
判断单元,用于判断故障节点的个数是否为多个;在故障节点的个数不为多个的情况下,执行依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时的步骤;故障节点选取单元,用于在故障节点的个数为多个的情况下,选取任意一个目标故障节点执行依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署目标故障节点的分布式训练后的迭代耗时的步骤,在利用替换节点代替目标故障节点的工作后,执行下一个故障节点的替换,直至完成所有故障节点的替换。
161.图6所对应实施例中特征的说明可以参见图3至图5所对应实施例的相关说明,这里不再一一赘述。
162.由上述技术方案可以看出,当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息;为了实现故障节点的替换,可以根据每个计算节点的存活信息和任务运行状态,确定出异构计算系统中的可用计算节点。依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时。基于各可用计算节点的迭代耗时、峰值算力以及故障节点所对应的分布式训练任务的平均耗时,从各可用计算节点中选取出替换节点;将故障节点所对应的训练模型和参数下发至替换节点,并向替换节点部署故障节点所属的通信环和环连接顺序,以使得替换节点代替故障节点工作。本发明的有益效果在于,各可用计算节点的迭代耗时以及故障节点所对应的分布式训练任务的平均耗时是影响分布式训练的计算效率的重要参数,各可用计算节点的峰值算力是保证不浪费计算资源的重要参数。基于各可用计算节点的迭代耗时、峰值算力以及故障节点所对应的分布式训练任务的平均耗时,从各可用计算节点中选取出替换节点,保证了在尽量不浪费计算资源并且尽量不影响分布式训练的计算效率的情况下,可以选择出最优的替换节点。通过将当前已有的训练成果同步给该替换节点,保证了训练任务的继续运行。
163.图7为本发明实施例提供的一种电子设备的结构图,如图7所示,电子设备包括:存储器50,用于存储计算机程序;处理器51,用于执行计算机程序时实现如上述实施例面向异构计算系统的故障节点切换方法的步骤。
164.本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
165.其中,处理器51可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器51可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器51也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器51可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器51还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
166.存储器50可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器50还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器50至少用于存储以下计算机程序501,其中,该计算机程序被处理器51加载并执行之后,能够实现前述任一实施例公开的面向异构计算系统的故障节点切换方法的相关步骤。另外,存储器50所存储的资源还可以包括操作系统502和数据503等,存储方式可以是短暂存储或者永久存储。其中,操作系统502可以包括windows、unix、linux等。数据503可以包括但不限于网络带宽信息、存活信息、任务运行状态、参数量、计算耗时、峰值算力、平均耗时等。
167.在一些实施例中,电子设备还可包括有显示屏52、输入输出接口53、通信接口54、电源55以及通信总线56。
168.本领域技术人员可以理解,图7中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
169.可以理解的是,如果上述实施例中的面向异构计算系统的故障节点切换方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对目前技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、磁碟或者光盘等各种可以存储程序代码的介质。
170.基于此,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述面向异构计算系统的故障节点切换方法的步骤。
171.以上对本发明实施例所提供的一种面向异构计算系统的故障节点切换方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
172.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
173.以上对本发明所提供的一种面向异构计算系统的故障节点切换方法、装置、设备和计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

技术特征:
1.一种面向异构计算系统的故障节点切换方法,其特征在于,包括:当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息;根据每个计算节点的存活信息和任务运行状态,确定出所述异构计算系统中的可用计算节点;依据各所述可用计算节点的参数量、计算耗时以及所述网络带宽信息,确定出各所述可用计算节点部署所述故障节点的分布式训练后的迭代耗时;基于各所述可用计算节点的迭代耗时、峰值算力以及所述故障节点所对应的分布式训练任务的平均耗时,从各所述可用计算节点中选取出替换节点;将所述故障节点所对应的训练模型和参数下发至所述替换节点,并向所述替换节点部署所述故障节点所属的通信环和环连接顺序,以使得所述替换节点代替所述故障节点工作。2.根据权利要求1所述的面向异构计算系统的故障节点切换方法,其特征在于,在所述当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息之前,还包括:定期更新异构计算系统的监控信息;其中,所述监控信息包括每个计算节点的地址信息、异构算力类型标识、峰值算力、存活信息、任务运行状态、计算耗时、任务标识、参数量以及每个分布式训练任务对应的平均耗时。3.根据权利要求2所述的面向异构计算系统的故障节点切换方法,其特征在于,针对于所述监控信息的建立过程,所述方法包括:获取分布式训练任务的训练信息;其中,所述训练信息包括所述分布式训练任务的算力需求、参数量、计算节点类型、异构计算系统中每个计算节点的地址信息;获取每个计算节点的运行信息;其中,所述运行信息包括每个计算节点的存活信息、峰值算力、任务运行状态、计算耗时以及运行分布式训练任务的单步耗时;依据每个分布式训练任务下所对应的计算节点的单步耗时,确定出每个分布式训练任务对应的平均耗时;根据每个分布式训练任务的平均耗时以及每个计算节点所对应的训练信息和运行信息,构建出监控信息。4.根据权利要求3所述的面向异构计算系统的故障节点切换方法,其特征在于,所述依据每个分布式训练任务下所对应的计算节点的单步耗时,确定出每个分布式训练任务对应的平均耗时包括:基于每个计算节点的单步耗时及其对应的分布式训练任务,确定出每个分布式训练任务下单步耗时最长的计算节点;将每个所述单步耗时最长的计算节点的单步耗时平均值作为其对应的分布式训练任务的平均耗时。5.根据权利要求2所述的面向异构计算系统的故障节点切换方法,其特征在于,所述依据各所述可用计算节点的参数量、计算耗时以及所述网络带宽信息,确定出各所述可用计算节点部署所述故障节点的分布式训练后的迭代耗时包括:依据所述故障节点所对应的分布式训练任务类型,从所述监控信息中确定出匹配的目标参数量;
从所述网络带宽信息中确定出前向计算节点与目标可用计算节点之间的上行通信带宽,以及目标可用计算节点与后向计算节点之间的下行通信带宽;其中,所述前向计算节点为与所述故障节点相邻的前一个计算节点;所述后向计算节点为与所述故障节点相邻的后一个计算节点;所述目标可用计算节点为所有可用计算节点中的任意一个可用计算节点;基于所述目标参数量、所述上行通信带宽和所述下行通信带宽,确定出所述目标可用计算节点的通信耗时;依据所述监控信息确定出所述故障节点所对应的分布式训练任务类型的计算耗时;根据所述目标可用计算节点的通信耗时和计算耗时,确定出所述目标可用计算节点的迭代耗时。6.根据权利要求5所述的面向异构计算系统的故障节点切换方法,其特征在于,所述基于所述目标参数量、所述上行通信带宽和所述下行通信带宽,确定出所述目标可用计算节点的通信耗时包括:根据所述目标参数量与所述下行通信带宽,确定出所述目标可用计算节点的下行通信耗时;根据所述目标参数量与所述上行通信带宽,确定出所述目标可用计算节点的上行通信耗时;从所述下行通信耗时和所述上行通信耗时中选取最大值作为所述目标可用计算节点的通信耗时。7.根据权利要求6所述的面向异构计算系统的故障节点切换方法,其特征在于,所述根据所述目标参数量与所述下行通信带宽,确定出所述目标可用计算节点的下行通信耗时包括:将所述目标参数量与所述下行通信带宽的比值作为所述目标可用计算节点的下行通信耗时。8.根据权利要求6所述的面向异构计算系统的故障节点切换方法,其特征在于,所述根据所述目标参数量与所述上行通信带宽,确定出所述目标可用计算节点的上行通信耗时包括:将所述目标参数量与所述上行通信带宽的比值作为所述目标可用计算节点的上行通信耗时。9.根据权利要求5所述的面向异构计算系统的故障节点切换方法,其特征在于,所述依据所述监控信息确定出所述故障节点所对应的分布式训练任务类型的计算耗时包括:从所述监控信息中查询所述故障节点所对应的分布式训练任务类型的计算耗时;在所述故障节点所对应的分布式训练任务类型的计算耗时为多个的情况下,将多个计算耗时的平均值作为所述故障节点所对应的分布式训练任务类型最终的计算耗时。10.根据权利要求9所述的面向异构计算系统的故障节点切换方法,其特征在于,还包括:在所述监控信息中不存在与所述故障节点所对应的分布式训练任务类型匹配的计算耗时的情况下,基于所述故障节点所对应的分布式训练任务的算力需求以及所述目标可用计算节点的峰值算力,确定出所述故障节点所对应的分布式训练任务类型的计算耗时。11.根据权利要求10所述的面向异构计算系统的故障节点切换方法,其特征在于,所述
基于所述故障节点所对应的分布式训练任务的算力需求以及所述目标可用计算节点的峰值算力,确定出所述故障节点所对应的分布式训练任务类型的计算耗时包括:将所述故障节点所对应的分布式训练任务的算力需求与所述目标可用计算节点的峰值算力的比值作为所述故障节点所对应的分布式训练任务类型的计算耗时。12.根据权利要求1所述的面向异构计算系统的故障节点切换方法,其特征在于,所述基于各所述可用计算节点的迭代耗时、峰值算力以及所述故障节点所对应的分布式训练任务的平均耗时,从各所述可用计算节点中选取出替换节点包括:从各所述可用计算节点中选取出迭代耗时小于或等于所述故障节点所对应的分布式训练任务的平均耗时的待替换节点;将峰值算力最小的待替换节点作为替换节点。13.根据权利要求12所述的面向异构计算系统的故障节点切换方法,其特征在于,还包括:在各所述可用计算节点的迭代耗时均大于所述故障节点所对应的分布式训练任务的平均耗时的情况下,将取值最小的迭代耗时所对应的可用计算节点作为替换节点。14.根据权利要求13所述的面向异构计算系统的故障节点切换方法,其特征在于,还包括:在不具有可用计算节点的情况下,则输出无替换节点的提示信息。15.根据权利要求13所述的面向异构计算系统的故障节点切换方法,其特征在于,还包括:在不具有可用计算节点的情况下,将所述故障节点从其所属的通信环中删除,并依据所述通信环的剩余计算节点以及配置信息,重新建立新的通信环。16.根据权利要求1所述的面向异构计算系统的故障节点切换方法,其特征在于,所述将所述故障节点所对应的训练模型和参数下发至所述替换节点包括:从所述故障节点所属通信环中选取存活的计算节点;复制所述存活的计算节点的当前训练模型和参数;在选取出替换节点后,将所述当前训练模型和参数下发至所述替换节点。17.根据权利要求1所述的面向异构计算系统的故障节点切换方法,其特征在于,所述当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息包括:当检测到存活信息异常的故障节点的情况下,利用网络测试工具测试所述异构计算系统中各计算节点之间的通信带宽;按照带宽邻接矩阵的格式,记录各所述计算节点之间的通信带宽。18.根据权利要求1所述的面向异构计算系统的故障节点切换方法,其特征在于,所述根据每个计算节点的存活信息和任务运行状态,确定出所述异构计算系统中的可用计算节点包括:从所述异构计算系统中筛选出存活信息有效并且未执行分布式训练任务的可用计算节点。19.根据权利要求1至18任意一项所述的面向异构计算系统的故障节点切换方法,其特征在于,在所述依据各所述可用计算节点的参数量、计算耗时以及所述网络带宽信息,确定出各所述可用计算节点部署所述故障节点的分布式训练后的迭代耗时之前还包括:
判断所述故障节点的个数是否为多个;在所述故障节点的个数不为多个的情况下,执行所述依据各所述可用计算节点的参数量、计算耗时以及所述网络带宽信息,确定出各所述可用计算节点部署所述故障节点的分布式训练后的迭代耗时的步骤;在所述故障节点的个数为多个的情况下,选取任意一个目标故障节点执行依据各所述可用计算节点的参数量、计算耗时以及所述网络带宽信息,确定出各所述可用计算节点部署所述目标故障节点的分布式训练后的迭代耗时的步骤,在利用替换节点代替所述目标故障节点的工作后,执行下一个故障节点的替换,直至完成所有故障节点的替换。20.一种面向异构计算系统的故障节点切换装置,其特征在于,包括收集单元、第一确定单元、第二确定单元、选取单元、下发单元和部署单元;所述收集单元,用于当检测到存活信息异常的故障节点的情况下,收集异构计算系统的网络带宽信息;所述第一确定单元,用于根据每个计算节点的存活信息和任务运行状态,确定出所述异构计算系统中的可用计算节点;所述第二确定单元,用于依据各所述可用计算节点的参数量、计算耗时以及所述网络带宽信息,确定出各所述可用计算节点部署所述故障节点的分布式训练后的迭代耗时;所述选取单元,用于基于各所述可用计算节点的迭代耗时、峰值算力以及所述故障节点所对应的分布式训练任务的平均耗时,从各所述可用计算节点中选取出替换节点;所述下发单元,用于将所述故障节点所对应的训练模型和参数下发至所述替换节点;所述部署单元,用于向所述替换节点部署所述故障节点所属的通信环和环连接顺序,以使得所述替换节点代替所述故障节点工作。21.一种电子设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现如权利要求1至19任意一项所述面向异构计算系统的故障节点切换方法的步骤。22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19任意一项所述面向异构计算系统的故障节点切换方法的步骤。

技术总结
本发明涉及多元异构计算技术领域,公开了面向异构计算系统的故障节点切换方法、装置和设备,当检测到存活信息异常的故障节点时,收集网络带宽信息;根据存活信息和任务运行状态,确定出可用计算节点。依据各可用计算节点的参数量、计算耗时以及网络带宽信息,确定出各可用计算节点部署故障节点的分布式训练后的迭代耗时。基于迭代耗时、峰值算力以及平均耗时,从各可用计算节点中选取出替换节点,保证了在尽量不浪费计算资源并且尽量不影响计算效率的同时,选择出最优的替换节点;将故障节点所对应的训练模型和参数下发至替换节点,向替换节点部署故障节点所属的通信环和环连接顺序,使得替换节点代替故障节点工作,保证了训练任务的继续运行。了训练任务的继续运行。了训练任务的继续运行。


技术研发人员:唐轶男 赵雅倩 郭振华 李仁刚 王丽 曹芳 高开
受保护的技术使用者:浪潮电子信息产业股份有限公司
技术研发日:2023.08.04
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐