一种在网计算异常处理方法及装置与流程

未命名 10-25 阅读:64 评论:0


1.本技术涉及计算机技术领域,特别是涉及一种在网计算异常处理方法及装置。


背景技术:

2.随着高性能计算(high performance computing,hpc)和ai应用的兴起,消息传递接口(message passing interface,mpi)集合通信方案被广泛应用。在mpi集合通信方案中,可以利用在网计算技术将计算过程从服务器卸载到交换机上,从而提升计算效率。
3.服务器可以将计算任务涉及的数据封装成mpi报文,并发送到交换机,进而交换机利用自身的计算模块对接收到的数据进行计算。如果计算模块在计算过程中出现故障,则计算任务无法继续进行,会导致计算任务执行失败,后续需要重新执行该计算任务,将浪费大量的时间和计算模块的计算资源。


技术实现要素:

4.本技术实施例的目的在于提供一种在网计算异常处理方法及装置,以避免因计算模块故障而导致任务执行失败,可以提高计算效率和节约计算资源。具体技术方案如下:第一方面,本技术实施例提供一种在网计算异常处理方法,所述方法应用于网络设备的主用板,所述网络设备还包括多个接口板,至少两个接口板包括具有计算资源的计算模块,所述方法包括:若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量;从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量的第二计算模块;向所述第二计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第二计算模块之间的映射关系,以使得任一接口板接收到所述计算任务的计算数据后,将计算数据发送至所述第二计算模块,以便所述第二计算模块继续执行所述计算任务。
5.在一种可能的实现方式中,在所述若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量之前,所述方法还包括:周期性向所述第一计算模块发送心跳报文,并接收所述第一板回复的响应报文,所述响应报文包括所述第一计算模块的状态信息;若所述状态信息表征所述第一计算模块故障,或在连续预设数量个周期内均未接收到所述第一计算模块回复的响应报文,则确定所述第一计算模块故障。
6.在一种可能的实现方式中,所述从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量的第二计算模块,包括:从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第二计算模块。
7.在一种可能的实现方式中,在所述若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量之前,所述方法还包括:接收并存储在网计算管理器发送的所述计算任务的任务信息以及执行所述计算任务所需耗费的第一资源量;从各接口板包括的计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第一计算模块;向所述第一计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第一计算模块之间的映射关系。
8.第二方面,本技术实施例提供一种在网计算异常处理方法,所述方法应用于网络设备的第二计算模块,所述网络设备包括主用板和多个接口板,至少两个接口板包括具有计算资源的计算模块,所述方法包括:接收所述主用板发送的计算任务的任务信息,所述计算任务为第一计算模块故障前未执行完的计算任务,所述第二计算模块的剩余资源量大于所述计算任务所需耗费的第一资源量;接收任一接口板转发的所述计算任务的计算数据,基于所述计算数据继续执行所述计算任务。
9.在一种可能的实现方式中,所述接收任一接口板转发的所述计算任务的计算数据,基于所述计算数据继续执行所述计算任务,包括:接收所述接口板转发的针对所述计算任务的多个mpi请求报文,每个mpi请求报文包括一个批次id以及批次id对应的一批计算数据,所述多个mpi请求报文包括参与所述计算任务的所有进程对应的mpi请求报文;若所述多个mpi请求报文包括的批次id相同,则基于所述多个mpi请求报文包括的计算数据进行在网计算;若所述多个mpi请求报文包括来自第一服务器的第一mpi请求报文和来自第二服务器的第二mpi请求报文,且所述第一mpi请求报文包括的第一批次id小于所述第二mpi请求报文包括的第二批次id,则向所述第二服务器发送第一mpi响应报文,所述第一mpi响应报文包括所述第一批次id且报文负载部分为空;接收所述第二服务器发送的第三mpi请求报文,所述第三mpi请求报文包括所述第一批次id以及所述第一批次id对应的计算数据;基于所述第一mpi请求报文和所述第三mpi请求报文携带的所述第一批次id对应的计算数据进行在网计算。
10.在一种可能的实现方式中,在所述基于所述第一mpi请求报文和所述第三mpi请求报文携带的所述第一批次id对应的计算数据进行在网计算之后,所述方法还包括:向所述第一服务器和所述第二服务器反馈计算结果;接收所述第一服务器发送的第四mpi请求报文,所述第四mpi请求报文包括所述第二批次id和所述第二批次id对应的计算数据;基于所述第二mpi请求报文和所述第四mpi请求报文携带的所述第二批次id对应的计算数据进行在网计算,并向所述第一服务器和所述第二服务器反馈计算结果。
11.第三方面,本技术实施例提供一种在网计算异常处理装置,所述装置应用于网络
设备的主用板,所述网络设备还包括多个接口板,至少两个接口板包括具有计算资源的计算模块,所述装置包括:确定模块,用于若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量;选择模块,用于从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量的第二计算模块;发送模块,用于向所述第二计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第二计算模块之间的映射关系,以使得任一接口板接收到所述计算任务的计算数据后,将计算数据发送至所述第二计算模块,以便所述第二计算模块继续执行所述计算任务。
12.在一种可能的实现方式中,所述装置还包括接收模块;所述发送模块,还用于周期性向所述第一计算模块发送心跳报文;所述接收模块,用于接收所述第一板回复的响应报文,所述响应报文包括所述第一计算模块的状态信息;所述确定模块,还用于若所述状态信息表征所述第一计算模块故障,或在连续预设数量个周期内均未接收到所述第一计算模块回复的响应报文,则确定所述第一计算模块故障。
13.在一种可能的实现方式中,所述选择模块,具体用于从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第二计算模块。
14.在一种可能的实现方式中,所述装置还包括接收模块和存储模块;所述接收模块,用于接收在网计算管理器发送的所述计算任务的任务信息以及执行所述计算任务所需耗费的第一资源量;所述存储模块,用于存储所述接收模块接收的所述计算任务的任务信息以及执行所述计算任务所需耗费的第一资源量;所述选择模块,用于从所述多个计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第一计算模块;发送模块,用于向所述第一计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第一计算模块之间的映射关系。
15.第四方面,本技术实施例提供一种在网计算异常处理装置,所述装置应用于网络设备的第二计算模块,所述网络设备包括主用板和多个接口板,至少两个接口板包括具有计算资源的计算模块,所述装置包括:接收模块,用于接收所述主用板发送的计算任务的任务信息,所述计算任务为第一计算模块故障前未执行完的计算任务,所述第二计算模块的剩余资源量大于所述计算任务所需耗费的第一资源量;所述接收模块,还用于接收任一接口板转发的所述计算任务的计算数据;计算模块,用于基于所述计算数据继续执行所述计算任务。
16.在一种可能的实现方式中,所述装置还包括发送模块;所述接收模块,具体用于接收任一接口板转发的针对所述计算任务的多个mpi请
求报文,每个mpi请求报文包括一个批次id以及批次id对应的一批计算数据,所述多个mpi请求报文包括参与所述计算任务的所有进程对应的mpi请求报文;所述计算模块,具体用于若所述多个mpi请求报文包括的批次id相同,则基于所述多个mpi请求报文包括的计算数据进行在网计算;所述计算模块,具体用于若所述多个mpi请求报文包括来自第一服务器的第一mpi请求报文和来自第二服务器的第二mpi请求报文,且所述第一mpi请求报文包括的第一批次id小于所述第二mpi请求报文包括的第二批次id,则触发所述发送模块向所述第二服务器发送第一mpi响应报文,所述第一mpi响应报文包括所述第一批次id且报文负载部分为空;所述接收模块,具体用于接收所述第二服务器发送的第三mpi请求报文,所述第三mpi请求报文包括所述第一批次id以及所述第一批次id对应的计算数据;所述计算模块,具体用于基于所述第一mpi请求报文和所述第三mpi请求报文携带的所述第一批次id对应的计算数据进行在网计算。
17.在一种可能的实现方式中,所述发送模块,还用于向所述第一服务器和所述第二服务器反馈计算结果;所述接收模块,还用于接收所述第一服务器发送的第四mpi请求报文,所述第四mpi请求报文包括所述第二批次id和所述第二批次id对应的计算数据;所述计算模块,还用于基于所述第二mpi请求报文和所述第四mpi请求报文携带的所述第二批次id对应的计算数据进行在网计算,并触发所述发送模块向所述第一服务器和所述第二服务器反馈计算结果。
18.第五方面,本技术实施例提供一种主用板,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的方法。
19.第六方面,本技术实施例提供一种网络设备,包括主用板和多个接口板,至少两个接口板包括具有计算资源的计算模块;所述主用板,用于实现上述第一方面所述的方法;所述计算模块,用于实现上述第二方面所述的方法。
20.第七方面,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面所述的方法。
21.第八方面,本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
22.采用上述技术方案,在第一计算模块故障后,可以从其他计算模块中,选择剩余资源量大于第一计算模块的计算任务所需耗费的第一资源量的第二计算模块,向第二计算模块发送该计算任务的任务信息,并向接口板发送该计算任务与第二计算模块之间的映射关系。如此,后续接口板接收到针对该计算任务的计算数据后,将根据映射关系将计算数据发送至第二计算模块,而不会继续发送至第一计算模块,从而使得未发生故障的第二计算模块能够继续执行该计算任务,可以避免因第一计算模块故障而导致计算任务执行失败,后续无需重新执行该计算任务,避免了对计算资源的浪费,且相比于重新执行该计算任务的
方式,可以提高计算效率。
23.当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
24.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
25.图1为本技术实施例提供的一种在网计算网络架构的示意图;图2为本技术实施例提供的网络设备中包括的各个板卡的示例性示意图;图3为本技术实施例提供的一种在网计算异常处理方法的流程图;图4为本技术实施例提供的一种在网计算异常处理方法的示例性示意图;图5为本技术实施例提供的另一种在网计算异常处理方法的流程图;图6为本技术实施例提供的一种mpi请求报文的格式示意图;图7为本技术实施例提供的一种在网计算异常处理装置的结构示意图;图8为本技术实施例提供的另一种在网计算异常处理装置的结构示意图;图9为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本技术保护的范围。
27.为便于理解,首先对本技术实施例的在网计算网络架构进行介绍,以采用leaf(叶)-spine(脊)的组网方式为例,如图1所示,该网络架构中包括spine节点、leaf节点、服务器、在网计算管理器以及任务管理系统。spine节点和leaf节点均可以为交换机。
28.其中,spine节点与leaf节点相连,每个leaf节点与多台服务器相连,在网计算管理器可以对spine节点、leaf节点和服务器进行管理,任务管理器用于对各服务器运行的任务进行管理。
29.图1中示例性地示出了两个spine节点,分别为spine1和spine2,以及两个leaf节点,分别为leaf1和leaf2。并且示例性地示出了leaf1连接的服务器1-n,以及leaf2连接的服务器1-n。
30.在需要进行计算任务时,用户可以通过任务管理器选择执行该计算任务的服务器,并为每个服务器配置任务信息,以及配置针对该计算任务的进程和用于承载各进程的gpu。或者,在没有任务管理器的情况下,用户也可以直接在服务器上输入命令,以向服务器下发任务信息,并启动用于执行该计算任务的进程。在这一阶段,可以确定参与该计算任务的多个进程各自的身份标识rank id,参与该计算任务的多个进程可以运行在不同的服务器中。在在网计算的场景中,为服务器分配的计算任务均交由交换机执行。
31.服务器,用于在接收到任务信息时,请求在网计算管理器为自身分配在网计算的计算资源,并将计算任务的任务信息和参与该计算任务的进程需要占用的资源量发送给在网计算管理器。其中,该任务信息至少包括任务id和rank id,在需要通过远程直接数据存取(remote direct memory access,rdma)传输计算数据的情况下,任务信息还需要携带rdma通信参数。
32.在网计算管理器,用于在接收到各参与计算任务的服务器发送的任务信息和各进程需要占用的资源量后,汇总计算执行该计算任务所需耗费的资源量,并基于预先存储的网络拓扑确定每个服务器连接的leaf节点,并判断这些服务器是否在同一leaf节点下,若在同一leaf节点下,则该leaf节点即可执行计算任务;若一些服务器在leaf1下,另一些服务器在leaf2下,则需进一步选择leaf1和leaf2均连接的一个spine节点参与该计算任务。
33.在无需spine节点参与该计算任务的情况下,在网计算管理器可以向确定的每个leaf节点发送任务信息,该任务信息至少包括任务id、各服务器上该计算任务对应进程的rank id以及执行该计算任务所需耗费的资源量。
34.在需要spine节点参与该计算任务的情况下,在网计算管理器可以向确定的每个leaf节点发送任务信息,该任务信息至少包括任务id、各服务器上该计算任务对应进程的rank id、spine节点的地址、参与该计算任务的每个leaf节点对应的rank id以及执行该计算任务所需耗费的资源量。其中,每个leaf节点对应的rank id用于spine节点后续区分计算数据来自哪一leaf节点。并且还需向spine节点发送任务信息,向spine节点发送的任务信息至少包括任务id、参与该计算任务的每个leaf节点对应的rank id以及执行该计算任务所需耗费的资源量。
35.leaf节点,用于在接收到在网计算管理器下发的任务信息后,从自身的各接口板包括的计算模块中选择用于执行该计算任务的计算模块,如果当前不存在满足该计算任务的资源需求的计算模块,则向在网计算管理器返回失败消息,否则返回成功消息,并预留该计算任务所需的计算资源。并且,leaf节点需向自身的各接口板下发任务id和选择的计算模块之间的映射关系,以使得各接口板接收到该任务id的报文后能够将报文转发给对应的计算模块。另外,对于需要spine节点参与计算任务的情况下,leaf节点还需在选择的计算模块中配置leaf节点对应的rank id以及spine节点的地址,以便指导计算模块后续在计算完成后向spine节点发送计算数据。
36.若在网计算管理器接收到成功消息,则可向各服务器发送成功消息。
37.服务器,用于在接收到成功消息后,向参与该计算任务的各leaf节点发送携带计算数据的mpi请求报文,各leaf节点的接口板接收到mpi请求报文后,可将该mpi请求报文转发到对应的计算模块。进而计算模块对接收到的计算数据进行计算,若还需spine节点进行计算,则计算模块将计算数据发送给spine节点进行进一步计算,spine节点完成计算后会将计算结果回复给leaf节点,最终由leaf节点向服务器反馈最终的计算结果。
38.需要说明的是,上述leaf节点和spine节点均包括多个接口板,且部分接口板包括用于在网计算的fpga板卡或计算芯片,为便于描述,本技术实施例中将接口板中包括的fpga板卡和计算芯片统称为计算模块。作为示例,如图2所示,图2示出了一个网络设备包括的9个slot(插槽),其中,slot1为主用板,slot2为备用板,slot3-9均为接口板。其中,slot4-6具有计算资源,能够实现在网计算功能,即slot4-6均包括计算模块。
39.为了避免计算模块在计算过程中故障导致的任务执行失败的问题,本技术实施例提供了一种在网件计算异常处理方法,该方法应用于网络设备的主用板,该网络设备可以为上述leaf节点或spine节点,网络设备还包括多个接口板,至少两个接口板包括具有计算资源的计算模块,如图3所示,该方法包括:s301、若确定第一计算模块故障,则确定第一计算模块未执行完的计算任务所需耗费的第一资源量。
40.其中,第一计算模块未执行完的计算任务可以有1个或多个,若有多个未执行完的计算任务,则需分别确定每个计算任务所需耗费的第一资源量。
41.以图2为例,若slot4在执行计算任务1和计算任务2的过程中故障,则主用板需要确定计算任务1所需耗费的资源量和计算任务2所需耗费的资源量。
42.s302、从除第一计算模块之外的其他计算模块中,选择剩余资源量大于第一资源量的第二计算模块。
43.本技术实施例中,资源量可以由带宽占用率衡量,例如,若计算模块有100g的两个内联口,则流量不超过200g/s,则该计算模块内数据都能被正常处理,如果流量超过200g/s,则会产生丢包,因此需要保证为该计算模块分配计算任务后,流量不超过200g/s。
44.若第一计算模块未执行完的计算任务是1个,则可选择一个第二计算模块,若第一计算模块未执行完的计算任务是多个,则可选择一个或多个第二计算模块。
45.例如,slot4在执行计算任务1和计算任务2的过程中故障,计算任务1需要耗费单个计算模块上30%的资源,计算任务2需要耗费单个计算模块上20%的资源。
46.若slot5和slot6的剩余资源分别为70%和15%,则可将计算任务1和计算任务2均转交给slot5。
47.若slot5和slot6的剩余资源分别为30%和25%,则可将计算任务1转交给slot5,将计算任务2转交给slot6。如图4所示,slot4正在执行任务id为1的计算任务1和任务id为2的计算任务2,计算任务1和计算任务2均对应3个进程,这3个进程对应的rank id为0至2。在slot4故障后,计算任务1由slot5执行,计算任务2由slot6执行。
48.s303、向第二计算模块发送计算任务的任务信息,并向上述多个接口板发送计算任务与第二计算模块之间的映射关系,以使得任一接口板接收到该计算任务的计算数据后,将计算数据发送至第二计算模块,以便第二计算模块继续执行计算任务。
49.其中,计算任务的任务信息至少包括任务id和rank id。计算任务与第二计算模块之间的映射关系具体可以为计算任务的任务id与第二计算模块所在的接口板的id之间的映射关系。
50.网络设备上的所有接口板均可接收到该映射关系,进而各接口板可以基于该映射关系为第二计算模块转发报文。
51.采用该方法,在第一计算模块故障后,可以从其他计算模块中,选择剩余资源量大于第一计算模块的计算任务所需耗费的第一资源量的第二计算模块,向第二计算模块发送该计算任务的任务信息,并向多个接口板发送该计算任务与第二计算模块之间的映射关系。如此,后续接口板接收到针对该计算任务的计算数据后,将根据映射关系将计算数据发送至第二计算模块,而不会继续发送至第一计算模块,从而使得未发生故障的第二计算模块能够继续执行该计算任务,可以避免因第一计算模块故障而导致计算任务执行失败,后
续无需重新执行该计算任务,避免了对计算资源的浪费,且相比于重新执行该计算任务的方式,可以提高计算效率。
52.在本技术实施例中,网络设备的主用板为了确定各计算模块的状态,可以周期性地向各计算模块发送心跳报文。相应地,在执行图1的流程之前,主用板周期性向第一计算模块发送心跳报文,并接收第一计算模块回复的响应报文,该响应报文中包括第一计算模块的状态信息。若状态信息表征第一计算模块故障,或在连续预设数量个周期内均未接收到第一计算模块回复的响应报文,则确定第一计算模块故障。
53.其中,发送心跳报文的周期可以为1秒,即每一秒发送一次心跳报文。第一计算模块回复的响应报文包括的状态信息用于表征第一计算模块是否故障,可选的,还可以包括第一计算模块的剩余资源。可以理解的是,主用板通过向每个计算模块发送心跳报文,并接收每个计算模块回复的响应报文,则可确定每个计算模块是否故障以及每个计算模块的剩余资源。
54.需要说明的是,在第一计算模块的计算能力出现故障,但仍然有通信能力的情况下,主用板可以接收到第一计算模块发送的用于表征第一计算模块故障的响应报文。但若第一计算模块完全故障,则无法发送响应报文,进而若主用板在连续预设数量个周期内均未接收到第一计算模块的响应报文,则可确定第一计算模块故障。
55.作为示例,预设数量可以为3,即若主用板向第一计算模块连续发送3次心跳报文,均未接收到第一计算模块回复的响应报文,则可确定第一计算模块故障。
56.可选地,在确定第一计算模块故障后,只要第一计算模块仍在位,主用板仍可继续周期性向第一计算模块发送心跳报文,后续第一计算模块故障恢复后,则可以回复响应报文。若主用板后续在连续预设数量个周期均接收到第一计算模块回复的表征第一计算模块未故障的响应报文,则可确定第一计算模块的故障已恢复。
57.采用本技术实施例,主用板通过周期性向第一计算模块发送心跳报文,可以实时准确地确定第一计算模块是否发生故障,从而能够在第一计算模块故障后及时将第一计算模块未执行完的计算任务转交给其他计算模块执行,能够避免计算任务执行失败。由于有些计算任务全部执行完成可能需要几天的时间,通过本技术实施例提供的方法可以避免计算任务被重新执行,而是可以继续执行,相比于重新执行该计算任务,可以减少完成计算任务所耗费的时间。
58.在本技术的一些实施例中,在确定第一计算模块故障之前,第一计算模块可以被分配计算任务。分配过程具体包括以下步骤:步骤1、主用板接收并存储在网计算管理器发送的计算任务的任务信息以及执行该计算任务所需耗费的第一资源量。
59.其中,该任务信息至少包括任务id和rank id。
60.步骤2、从各接口板包括的计算模块中,选择剩余资源量大于第一资源量,且剩余资源量与第一资源量的差值最小的计算模块,作为第一计算模块。
61.以图2为例,若第一资源量为单个计算模块40%的资源,当前slot4、slot5、slot6上的剩余资源量分别为45%、50%、30%,可见slot 4和slot5的剩余资源量均大于40%,slot4上的剩余资源量与第一资源量的差值为5%,slot5的剩余资源量与第一资源量的差值为10%,可见slot4的剩余资源量与第一资源量的差值最小,即slot4的剩余资源量更接近40%,则选
择slot4作为用于执行该计算任务的第一计算模块。
62.步骤3、向第一计算模块发送计算任务的任务信息,并向多个接口板发送计算任务与第一计算模块之间的映射关系。
63.作为示例,该映射关系为任务id与slot4之间的映射关系。
64.可以理解的是,网络设备中的所有接口板均可接收到该映射关系,后续任一接口板接收到携带该任务id的mpi请求报文后,即可根据该映射关系将该mpi请求报文转发给slot4,进而slot4中的计算模块可处理该mpi请求报文。
65.采用本技术实施例,主用板存储该计算任务的任务信息和第一资源量,可以使得在第一计算模块故障后,主用板能够根据该第一资源量选择第二计算模块,并将该计算任务的任务信息发送给第二计算模块,避免计算任务被执行失败。另外,主用板在为计算任务选择计算模块时,并不是直接选择剩余资源量最多的计算模块,而是选择剩余资源量大于第一资源量且剩余资源量与第一资源量差值最小的计算模块,如此,可以使得各计算模块的资源被充分利用,再接收到其他需要消耗更多计算资源的计算任务时,可以提高能够处理其他计算任务的可能性,并且,在第一计算模块故障后,提升了能够选择到接管第一计算模块未执行完的计算任务的可能性,使得计算任务分配更加合理。
66.相应地,在上述s302、从除第一计算模块之外的其他计算模块中,选择剩余资源量大于第一资源量的第二计算模块时,主用板也可以从除第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与第一资源量的差值最小的计算模块,作为第二计算模块。
67.例如,若slot4故障,slot4未完成的计算任务1所需耗费的资源量为40%,当前slot5、slot6上的剩余资源量分别为45%、55%,若按照现有技术的方法,选择剩余资源量最多的slot6继续执行该计算任务,则后续接收到的计算任务2所需耗费的资源量为50%,将导致不存在能够满足计算任务2所需资源量的slot,导致任务分配失败。
68.而按照本技术实施例的方式,由于slot5和slot6的剩余资源量均大于40%,但slot4的剩余资源量更接近40%,则选择slot5作为用于执行该计算任务1的第二计算模块。后续接收到计算任务2时,由于slot6的剩余资源量大于50%,则可将计算任务2分配给slot6,可见提高了计算任务被分配成功的可能性。
69.可选地,若暂时不存在剩余资源量大于第一资源量的计算模块,则可以等待一段时间,并继续周期性向各计算模块发送心跳报文,在此过程中各计算模块的剩余资源量可能会发生变化,若后需出现剩余资源量大于第一资源量的计算模块,则可将该计算模块作为第二计算模块。
70.对应于上述实施例,本技术实施例还提供一种在网计算异常处理方法,该方法应用于网络设备的第二计算模块,网络设备包括主用板和多个接口板,至少两个接口板包括具有计算资源的计算模块,如图5所示,该方法包括:s501、接收主用板发送的计算任务的任务信息,计算任务为第一计算模块故障前未执行完的计算任务,第二计算模块的剩余资源量大于计算任务所需耗费的第一资源量。
71.其中,该任务信息至少包括任务id和rank id。
72.关于第一计算模块和第二计算模块的介绍可参考上述实施例中的相关描述,此处不再赘述。
73.s502、接收任一接口板转发的计算任务的计算数据,基于计算数据继续执行计算任务。
74.采用该方法,第二计算模块可以接收主用板发送的计算任务的任务信息,该计算任务为第一计算模块故障前未执行完的计算任务,并且第二计算模块可以接收接口板转发的该计算任务的计算数据,并基于计算数据继续执行计算任务。即第一计算模块故障后,第二计算模块可以继续执行第一计算模块未完成执行的计算任务,可以避免因第一计算模块故障而导致计算任务执行失败,后续无需重新执行该计算任务,避免了对计算资源的浪费,且相比于重新执行该计算任务的方式,可以提高计算效率。
75.在本技术实施例中,s502、接收任一接口板转发的计算任务的计算数据,基于计算数据继续执行计算任务,具体包括以下步骤:步骤1、接收任一接口板转发的针对计算任务的多个mpi请求报文,每个mpi请求报文包括一个批次id以及批次id对应的一批计算数据,所述多个mpi请求报文包括参与所述计算任务的所有进程对应的mpi请求报文。
76.其中,接口板接收到服务器发送的mpi请求报文后,可以从mpi请求报文的报头中获取任务id,并基于任务id与计算模块之间的映射关系,将该mpi请求报文转发至任务id对应的计算模块。
77.作为示例,mpi请求报文的结构如图6所示,包括以太网(ethernet,eth)头、虚拟局域网(virtual local area network,vlan)、互联网协议(internet protocol,ip)头、用户数据报协议(user datagram protocol,udp)头、基本传输报头(basic transmission header,bth)、bth扩展头、mpi头以及负载,负载部分为计算数据。
78.其中,mpi头为包括任务id、rank id、数据的批次id(sequence id)、集合操作类型(例如allreduce)、数据类型和数据数量等信息的自定义报头。mpi头在bth扩展头之后。
79.步骤2、若多个mpi请求报文包括的批次id相同,则基于多个mpi请求报文包括的计算数据进行在网计算。
80.其中,由于多个mpi请求报文包括参与计算任务的所有进程对应的mpi请求报文,且多个mpi请求报文包括的批次id相同,说明第二计算模块已接收到所有参与计算任务的进程的同一批次计算数据,进而可对该批次的计算数据进行在网计算。
81.可以理解的是,在完成对该批数据的在网计算后,可以向发送mpi请求报文的各服务器反馈计算结果。
82.需要说明的是,由于计算数据的数据量较大,所以服务器需要分批发送计算数据,例如服务器可以根据最大传输单元(maximum transmission unit,mtu)确定一次最多发送2048个fit32数据,当接收到计算结果后,才会继续发送下一批计算数据。且一个计算模块在收到所有参与计算任务的服务器发送的相同批次的计算数据后,才能够对该批次的计算数据进行计算,并且该计算模块在接收到参与计算任务的所有服务器发送的下一批次的计算数据后,才会删除此次计算结果,如此若在向服务器发送计算结果时出现丢包时,可以重新向服务器发送计算结果。
83.本技术实施例中,第一计算模块出现故障的时机可能会出现以下三种情况:情况a、一批计算数据在计算过程中,还未生成计算结果时,第一计算模块出现故障。
84.情况b、一批计算数据已计算完成,但是在未将计算结果发送给各服务器之前,第一计算模块出现故障。
85.情况c、一批计算数据已计算完成,已将计算结果发送至部分服务器,另一部分服务器还未接收到计算结果时,第一计算模块故障。
86.在上述三种情况下,服务器在发送计算数据后,若超时未接收到计算结果,则将重新发送上次发送的一批计算数据,针对情况a和情况b,在第一计算模块故障后,第二计算模块可以接收到所有参与该计算任务的服务器重新发送的同一批计算数据,进而可以利用接收到的计算数据进行在网计算。
87.针对情况c,部分接收到计算结果的服务器将会继续发送下一批计算数据(例如批次10),而未接收到计算结果的服务器则会超时重发该批计算数据(例如批次9)。导致第二计算模块接收到一部分批次9的计算数据和一部分批次10的计算数据,这种情况下可执行步骤3。
88.步骤3、若多个mpi请求报文包括来自第一服务器的第一mpi请求报文和来自第二服务器的第二mpi请求报文,且第一mpi请求报文包括的第一批次id小于第二mpi请求报文包括的第二批次id,则向第二服务器发送第一mpi响应报文,第一mpi响应报文包括第一批次id且报文负载部分为空。
89.需要说明的是,第一服务器的数量可以为1个或多个,同理,第二服务器的数量也可以为1个或多个。
90.作为示例,若该计算任务对应3个进程,进程id为rank id 0-2,其中,rank id 0对应的进程在服务器a上,rank id 1对应的进程在服务器b上,rank id 2对应的进程在服务器c上。
91.服务器a、b和c在发送批次9的计算数据后,服务器a和服务器b已接收到计算结果,但服务器c未接收到计算结果,这种情况下,第二计算模块将接收到服务器a和服务器b发送的批次10的计算数据,以及服务器c发送的批次9的计算数据。这种情况下,第一服务器为服务器c,第二服务器为服务器a和服务器b。
92.则第二计算模块可向服务器a和服务器b分别发送一个不携带计算结果的mpi响应报文,该mpi响应报文的格式与mpi请求报文的格式相同,但该mpi响应报文不携带计算结果,即负载部分为空。该mpi响应报文携带的批次id为批次9。
93.步骤4、接收第二服务器发送的第三mpi请求报文,第三mpi请求报文包括第一批次id以及第一批次id对应的计算数据。
94.第二服务器接收到负载为空的第一mpi响应报文后,则可按照第一mpi响应报文携带的第一批次id重发第一批次id对应的计算数据。需要说明的是,在本技术实施例中,各服务器在接收到当前一个批次的计算数据的计算结果后,才会将上一批次的计算数据删除。
95.延续上一步骤中的例子,服务器a和服务器b均可接收到批次id为批次9的mpi响应报文,进而均会重发批次9的计算数据。
96.步骤5、基于第一mpi请求报文和第三mpi请求报文携带的第一批次id对应的计算数据进行在网计算。并向第一服务器和第二服务器反馈在网计算结果。
97.可以理解的是,第二计算模块可根据接收到的各mpi请求报文携带的批次id和rank id确定是否已接收到相同批次的所有rank id的计算数据,若是,则可针对该批次id
对应的计算数据进行在网计算。
98.可以理解的是,第二计算模块可以向第一服务器和第二服务器反馈在网计算结果。第一服务器接收到在网计算结果后,将会继续向网络设备发送第四mpi请求报文,相应地,第二计算模块可以接收到第二服务器发送的第四mpi请求报文,第四mpi请求报文包括第二批次id和第二批次id对应的计算数据。
99.第一服务器在接收到在网计算结果后,可确定承载该在网计算结果的mpi响应报文中包括第一批次id,小于本地维护的最新的第二批次id,则可忽略该计算结果。
100.由于第二计算模块之前已接收到第一服务器发送的第二批次的计算数据,所以在接收到第二服务器发送的第四mpi请求报文后,即可基于第二mpi请求报文和第四mpi请求报文携带的所述第二批次id对应的计算数据进行在网计算,并向第一服务器和所述第二服务器反馈计算结果。
101.至此,参与该计算任务的各服务器均接收到最新的计算结果,后续即可继续发送相同批次的计算数据。
102.采用该方法,针对第一计算模块出现故障的各种时机,第二计算模块均可继续执行第一计算模块的计算任务,实现了正确地衔接,可以避免计算任务被执行失败。
103.对应于上述方法实施例,本技术实施例还提供一种在网计算异常处理装置,该装置应用于网络设备的主用板,网络设备还包括多个接口板,至少两个接口板包括具有计算资源的计算模块,如图7所示,该装置包括:确定模块701,用于若确定第一计算模块故障,则确定第一计算模块未执行完的计算任务所需耗费的第一资源量;选择模块702,用于从除第一计算模块之外的其他计算模块中,选择剩余资源量大于第一资源量的第二计算模块;发送模块703,用于向第二计算模块发送计算任务的任务信息,并向所述多个接口板发送计算任务与第二计算模块之间的映射关系,以使得任一接口板接收到计算任务的计算数据后,将计算数据发送至第二计算模块,以便第二计算模块继续执行计算任务。
104.可选地,该装置还包括接收模块;发送模块703,还用于周期性向第一计算模块发送心跳报文;接收模块,用于接收第一板回复的响应报文,响应报文包括第一计算模块的状态信息;确定模块701,还用于若状态信息表征第一计算模块故障,或在连续预设数量个周期内均未接收到第一计算模块回复的响应报文,则确定第一计算模块故障。
105.可选地,选择模块702,具体用于从除第一计算模块之外的其他计算模块中,选择剩余资源量大于第一资源量,且剩余资源量与第一资源量的差值最小的计算模块,作为第二计算模块。
106.可选地,该装置还包括接收模块和存储模块;接收模块,用于接收在网计算管理器发送的计算任务的任务信息以及执行计算任务所需耗费的第一资源量;存储模块,用于存储接收模块接收的计算任务的任务信息以及执行计算任务所需耗费的第一资源量;
interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
112.通信接口用于上述电子设备与其他设备之间的通信。
113.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
114.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
115.在本技术提供的又一实施例中,还提供了一种网络设备,包括主用板和多个接口板,至少两个接口板包括具有计算资源的计算模块;主用板,用于实现上述方法实施例中主用板执行的方法;所述计算模块,用于实现上述方法实施例中第二计算模块执行的方法。
116.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一在网计算异常处理方法的步骤。
117.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一在网计算异常处理方法。
118.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk (ssd))等。
119.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
120.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
121.以上所述仅为本技术的较佳实施例,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。

技术特征:
1.一种在网计算异常处理方法,其特征在于,所述方法应用于网络设备的主用板,所述网络设备还包括多个接口板,至少两个接口板包括具有计算资源的计算模块,所述方法包括:若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量;从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量的第二计算模块;向所述第二计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第二计算模块之间的映射关系,以使得任一接口板接收到所述计算任务的计算数据后,将计算数据发送至所述第二计算模块,以便所述第二计算模块继续执行所述计算任务。2.根据权利要求1所述的方法,其特征在于,在所述若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量之前,所述方法还包括:周期性向所述第一计算模块发送心跳报文,并接收所述第一计算模块回复的响应报文,所述响应报文包括所述第一计算模块的状态信息;若所述状态信息表征所述第一计算模块故障,或在连续预设数量个周期内均未接收到所述第一计算模块回复的响应报文,则确定所述第一计算模块故障。3.根据权利要求1或2所述的方法,其特征在于,所述从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量的第二计算模块,包括:从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第二计算模块。4.根据权利要求1所述的方法,其特征在于,在所述若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量之前,所述方法还包括:接收并存储在网计算管理器发送的所述计算任务的任务信息以及执行所述计算任务所需耗费的第一资源量;从各接口板包括的计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第一计算模块;向所述第一计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第一计算模块之间的映射关系。5.一种在网计算异常处理方法,其特征在于,所述方法应用于网络设备的第二计算模块,所述网络设备包括主用板和多个接口板,至少两个接口板包括具有计算资源的计算模块,所述方法包括:接收所述主用板发送的计算任务的任务信息,所述计算任务为第一计算模块故障前未执行完的计算任务,所述第二计算模块的剩余资源量大于所述计算任务所需耗费的第一资源量;接收任一接口板转发的所述计算任务的计算数据,基于所述计算数据继续执行所述计算任务。6.根据权利要求5所述的方法,其特征在于,所述接收任一接口板转发的所述计算任务的计算数据,基于所述计算数据继续执行所述计算任务,包括:
接收任一接口板转发的针对所述计算任务的多个mpi请求报文,每个mpi请求报文包括一个批次id以及批次id对应的一批计算数据,所述多个mpi请求报文包括参与所述计算任务的所有进程对应的mpi请求报文;若所述多个mpi请求报文包括的批次id相同,则基于所述多个mpi请求报文包括的计算数据进行在网计算;若所述多个mpi请求报文包括来自第一服务器的第一mpi请求报文和来自第二服务器的第二mpi请求报文,且所述第一mpi请求报文包括的第一批次id小于所述第二mpi请求报文包括的第二批次id,则向所述第二服务器发送第一mpi响应报文,所述第一mpi响应报文包括所述第一批次id且报文负载部分为空;接收所述第二服务器发送的第三mpi请求报文,所述第三mpi请求报文包括所述第一批次id以及所述第一批次id对应的计算数据;基于所述第一mpi请求报文和所述第三mpi请求报文携带的所述第一批次id对应的计算数据进行在网计算。7.根据权利要求6所述的方法,其特征在于,在所述基于所述第一mpi请求报文和所述第三mpi请求报文携带的所述第一批次id对应的计算数据进行在网计算之后,所述方法还包括:向所述第一服务器和所述第二服务器反馈计算结果;接收所述第一服务器发送的第四mpi请求报文,所述第四mpi请求报文包括所述第二批次id和所述第二批次id对应的计算数据;基于所述第二mpi请求报文和所述第四mpi请求报文携带的所述第二批次id对应的计算数据进行在网计算,并向所述第一服务器和所述第二服务器反馈计算结果。8.一种在网计算异常处理装置,其特征在于,所述装置应用于网络设备的主用板,所述网络设备还包括多个接口板,至少两个接口板包括具有计算资源的计算模块,所述装置包括:确定模块,用于若确定第一计算模块故障,则确定所述第一计算模块未执行完的计算任务所需耗费的第一资源量;选择模块,用于从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量的第二计算模块;发送模块,用于向所述第二计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第二计算模块之间的映射关系,以使得任一接口板接收到所述计算任务的计算数据后,将计算数据发送至所述第二计算模块,以便所述第二计算模块继续执行所述计算任务。9.根据权利要求8所述的装置,其特征在于,所述装置还包括接收模块;所述发送模块,还用于周期性向所述第一计算模块发送心跳报文;所述接收模块,用于接收所述第一板回复的响应报文,所述响应报文包括所述第一计算模块的状态信息;所述确定模块,还用于若所述状态信息表征所述第一计算模块故障,或在连续预设数量个周期内均未接收到所述第一计算模块回复的响应报文,则确定所述第一计算模块故障。
10.根据权利要求8或9所述的装置,其特征在于,所述选择模块,具体用于从除所述第一计算模块之外的其他计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第二计算模块。11.根据权利要求8所述的装置,其特征在于,所述装置还包括接收模块和存储模块;所述接收模块,用于接收在网计算管理器发送的所述计算任务的任务信息以及执行所述计算任务所需耗费的第一资源量;所述存储模块,用于存储所述接收模块接收的所述计算任务的任务信息以及执行所述计算任务所需耗费的第一资源量;所述选择模块,用于从各接口板包括的计算模块中,选择剩余资源量大于所述第一资源量,且剩余资源量与所述第一资源量的差值最小的计算模块,作为所述第一计算模块;发送模块,用于向所述第一计算模块发送所述计算任务的任务信息,并向所述多个接口板发送所述计算任务与所述第一计算模块之间的映射关系。12.一种在网计算异常处理装置,其特征在于,所述装置应用于网络设备的第二计算模块,所述网络设备包括主用板和多个接口板,至少两个接口板包括具有计算资源的计算模块,所述装置包括:接收模块,用于接收所述主用板发送的计算任务的任务信息,所述计算任务为第一计算模块故障前未执行完的计算任务,所述第二计算模块的剩余资源量大于所述计算任务所需耗费的第一资源量;所述接收模块,还用于接收任一接口板转发的所述计算任务的计算数据;计算模块,用于基于所述计算数据继续执行所述计算任务。13.根据权利要求12所述的装置,其特征在于,所述装置还包括发送模块;所述接收模块,具体用于接收任一接口板转发的针对所述计算任务的多个mpi请求报文,每个mpi请求报文包括一个批次id以及批次id对应的一批计算数据,所述多个mpi请求报文包括参与所述计算任务的所有进程对应的mpi请求报文;所述计算模块,具体用于若所述多个mpi请求报文包括的批次id相同,则基于所述多个mpi请求报文包括的计算数据进行在网计算;所述计算模块,具体用于若所述多个mpi请求报文包括来自第一服务器的第一mpi请求报文和来自第二服务器的第二mpi请求报文,且所述第一mpi请求报文包括的第一批次id小于所述第二mpi请求报文包括的第二批次id,则触发所述发送模块向所述第二服务器发送第一mpi响应报文,所述第一mpi响应报文包括所述第一批次id且报文负载部分为空;所述接收模块,具体用于接收所述第二服务器发送的第三mpi请求报文,所述第三mpi请求报文包括所述第一批次id以及所述第一批次id对应的计算数据;所述计算模块,具体用于基于所述第一mpi请求报文和所述第三mpi请求报文携带的所述第一批次id对应的计算数据进行在网计算。14.根据权利要求13所述的装置,其特征在于,所述发送模块,还用于向所述第一服务器和所述第二服务器反馈计算结果;所述接收模块,还用于接收所述第一服务器发送的第四mpi请求报文,所述第四mpi请求报文包括所述第二批次id和所述第二批次id对应的计算数据;
所述计算模块,还用于基于所述第二mpi请求报文和所述第四mpi请求报文携带的所述第二批次id对应的计算数据进行在网计算,并触发所述发送模块向所述第一服务器和所述第二服务器反馈计算结果。

技术总结
本申请实施例提供了一种在网计算异常处理方法及装置,涉及计算机技术领域,该方法应用于网络设备的主用板,该方法包括:若确定第一计算模块故障,则确定第一计算模块未执行完的计算任务所需耗费的第一资源量;从除第一计算模块之外的其他计算模块中,选择剩余资源量大于第一资源量的第二计算模块;向第二计算模块发送计算任务的任务信息,并向接口板发送计算任务与第二计算模块之间的映射关系,以使得接口板接收到计算任务的计算数据后,将计算数据发送至第二计算模块,以便第二计算模块继续执行计算任务。能够避免因计算模块故障而导致任务执行失败,可以提高计算效率和节约计算资源。源。源。


技术研发人员:宛清
受保护的技术使用者:新华三技术有限公司
技术研发日:2023.09.08
技术公布日:2023/10/20
版权声明

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

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

航空商城 https://mall.aerohome.com.cn/

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

分享:

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

评论

相关推荐