一种数据处理的方法、装置和设备

文档序号:1925257 发布日期:2021-12-03 浏览:11次 >En<

阅读说明:本技术 一种数据处理的方法、装置和设备 (Data processing method, device and equipment ) 是由 杨荣玉 吴聿旻 胡天驰 李涛 于 2020-05-29 设计创作,主要内容包括:本申请公开了一种数据处理方法,应用于处理数据密集型计算任务的集群的超时聚合节点,获取第一数据,该第一数据为所述计算数据密集型计算任务中的部分聚合数据,第一数据携带超时节点的第一标识,该第一标识用于指示超时节点发生超时;根据该第一标识获取超时节点的第二数据,所述第二数据是超时节点发送的待聚合数据;按照预设规则聚合第一数据和第二数据得到第三数据,该第三数据为完全聚合数据;向集群中的各计算节点通知所述第三数据。这样,在不影响获得最终聚合结果的同时,避免了一个聚合操作长时间占用多个子交换机以及根交换机的网络资源的问题,提高了集群对数据聚合处理的效率。(The application discloses a data processing method, which is applied to an overtime aggregation node of a cluster for processing a data intensive computing task, and is used for acquiring first data, wherein the first data are part of aggregated data in the computing data intensive computing task, the first data carry a first identifier of an overtime node, and the first identifier is used for indicating the overtime node to overtime; acquiring second data of the overtime node according to the first identifier, wherein the second data is to-be-aggregated data sent by the overtime node; aggregating the first data and the second data according to a preset rule to obtain third data, wherein the third data are completely aggregated data; notifying each computing node in the cluster of the third data. Therefore, the problem that one aggregation operation occupies network resources of a plurality of sub-switches and a root switch for a long time is avoided while the final aggregation result is not influenced, and the efficiency of the cluster for data aggregation processing is improved.)

一种数据处理的方法、装置和设备

技术领域

本申请涉及计算技术领域,尤其涉及一种数据的处理方法、装置和设备。

背景技术

为了提供更加强大的计算能力,高性能计算集群(high performance computingcluster,HPCC)、人工智能(artificial intelligence,AI)集群等集群的规模不断扩大,计算节点数量不断增多。很多场景中,需要对集群中各计算节点的数据传输到指定的一个计算节点中,由该指定的计算节点进行聚合操作得到聚合后的数据,再将该聚合后的数据分发给各个计算节点。这样,各计算节点发出的数据在网络中可能经过多级交换机的中转后才到达指定执行聚合操作的计算节点,导致网络中传输的数据量庞大,从而极易导致网络带宽不足、网络时延较大从而出现网络拥塞的问题。

目前,为了缓解网络拥塞的问题,给集群中的各级交换机都赋予数据聚合的功能,通过交换机对计算节点的数据进行逐级聚合,在交换机逐级聚合过程中,交换机在接收到直连的所有计算节点发出的数据后,才对所接收的数据进行聚合,并将聚合后的结果发送给上一级的交换机,此时,该交换机用于作聚合操作的线程或进程所占用的网络资源才能被释放。但是,由于网络传输延迟、计算节点的处理能力不同等多种因素的影响,各级交换机在聚合过程中无法同时接收所有直连的下一级计算节点的待聚合数据,这就导致该交换机无法完成聚合过程,也无法释放因聚合而占用的网络资源。如果该集群中存在多个待聚合数据发送延迟的计算节点,则这些计算节点连接的各级交换机都需要等待,直至接收到所有待聚合数据才能进行聚合,上述过程需要长时间占用多个交换机的网络资源,导致聚合处理耗时长、效率低。因此,如何提供一种高效的数据聚合处理方法成为亟待解决的技术问题。

发明内容

基于此,本申请提供了一种数据处理的方法、装置和设备,能够在集群中存在待聚合数据发送延迟时,无需长时间占用多个交换机的网络资源等待超时节点发出的待聚合数据,提高集群中对数据聚合处理的效率。

第一方面,本申请提供了一种数据处理方法,应用于集群中的超时聚合节点,集群用于计算数据密集型计算任务,该方法具体可以包括:超时聚合节点获取计算数据密集型计算任务中的部分聚合数据,记作第一数据,第一数据携带用于指示所述超时节点发生超时的第一标识;然后,超时聚合节点根据第一标识获取超时节点发送的待聚合数据,记作第二数据;接着,超时聚合节点按照预设规则聚合第一数据和第二数据得到完全聚合数据,记作第三数据;最后,超时聚合节点即可向集群中的各计算节点通知第三数据。可见,通过上述方法,在集群中确定超时聚合节点,如果有超时节点存在,则由超时聚合节点等待超时节点的待聚合数据并执行最终的聚合操作,而交换机可以仅对接收的部分待聚合数据进行部分聚合后即可将部分聚合结果上送,在上送部分聚合结果后就能够释放该交换机在执行该次聚合操作所占用的网络资源,无需等待接收并聚合所有直连的下一级交换机或计算节点的待聚合数据,从而提高了集群中对数据聚合处理的效率。

在一种可能的实现方式中,集群包括但不限于:HPCC和AI集群,提高HPCC或AI集群中的数据聚合处理效率。

在另一种可能的实现方式中,根交换机接收直连的各子交换机发送的第四数据后,对所有第四数据进行聚合得到第一数据,其中,第四数据包括与超时节点直连的子交换机发送的部分聚合数据。这样,集群中存在超时节点时,根交换机对所接收的数据进行部分聚合后将部分聚合结果发送给超时聚合节点,根交换机即可释放在执行该次聚合操作所占用的网络资源,无需长时间等待时延较大的待聚合数据,从而提高了集群中对数据聚合处理的效率。

在另一种可能的实现方式中,按照预设规则聚合第一数据和第二数据得到第三数据,具体可以包括:超时聚合节点先确定第一数据和第二数据的数据类型,再判断数据类型的聚合结果与聚合顺序是否相关;当数据类型的聚合结果与聚合顺序无关,则,根据获取顺序聚合第一数据和第二数据得到第三数据;当数据类型的聚合结果与聚合顺序相关,则,按照预设的聚合顺序聚合第一数据和第二数据得到第三数据。这样,按照待聚合数据的数据类型精细化的对应到不同的预设规则,按照预设规则进行相应的聚合,使得聚合结果更加准确。

在另一种可能的实现方式中,超时节点发送的第二数据还可以包括超时标志位,超时标识位用于指示第二数据为超时节点的待聚合数据,还用于指示在超时聚合节点参与聚合,在传输经过的节点均不参与聚合,仅作旁路转发。其中,第二数据需要携带在报文中,该报文可以通过报文头的预留字段携带该超时标志位,预留字段的值用于指示产生第二数据的超时节点。这样,转发超时节点的待聚合数据的各子交换机以及根交换机均能够基于待聚合数据中的超时标志位确定该待聚合数据为超时节点发出的,从而不对该待聚合数据进行处理,直接旁路转发给超时聚合节点,为完成最终的聚合提供了可靠的数据基础。

在另一种可能的实现方式中,超时节点既可以是超时节点直连的子交换机根据本地预设的时间阈值确定的;和/或,超时节点也可以是管理节点基于历史聚合操作中各计算节点的聚合情况确定的。作为一个示例,当超时节点为超时节点直连的子交换机根据本地预设的时间阈值确定的,超时标志位为超时节点直连的子交换机基于本地的旁路表项生成并添加在第二数据中的。其中,旁路表项为超时节点直连的子交换机确定该超时节点超时后在本地存储空间生成的,该旁路表项用于指示超时节点和聚合命令的对应关系。这样,在超时节点直连的子交换机或根交换机上通过旁路表项记录其直连的下一级节点的超时情况,可以有效指导超时节点的待聚合数据的转发,使得聚合过程有序、高效的进行。作为另一个示例,当超时节点为管理节点基于历史聚合操作中各计算节点的聚合情况确定的,该超时标志位为超时节点添加在第二数据中的。这样,通过超时节点自己或超时节点直连的子交换机(或根交换机)在超时节点的待聚合数据中添加超时标志位,为有序转发该待聚合数据、可靠的完成最终的聚合操作提供了依据。

在另一种可能的实现方式中,集群中选择超时聚合节点的策略包括但不限于:选择策略一、选择集群中的一个固定节点作为超时聚合节点;选择策略二、按照网络负载情况确定一个节点作为超时聚合节点,例如选择负载最轻的节点作为超时聚合节点;选择策略三、按照集群中各节点的标识随机选择一个节点作为超时聚合节点;选择策略四、基于各节点距离根交换机的跳数或链路开销确定一个节点作为超时聚合节点,例如选择距离根交换机的跳数最少或链路开销最小的节点作为超时聚合节点。具体实现时,超时聚合节点可以为计算节点、管理节点、子交换机、根交换机或专用节点。其中,专用节点可以是与根交换机直连的、专门用于在集群中发生超时的情况下进行最终聚合操作的节点。这样,确定集群中的一个节点作为超时聚合节点,由超时聚合节点等待超时节点发送的待聚合数据,其他交换机可以在未完成对其直连的下一级节点的完全或部分聚合后释放网络资源,大大的提高了数据聚合处理的效率。

在另一种可能的实现方式中,当超时聚合节点为非根交换机时,例如:计算节点、管理节点、子交换机或专用节点作为超时聚合节点,那么,超时聚合节点获取第一数据,具体为:超时聚合节点接收集群的根交换机发送的第一数据,该第一数据为根交换机聚合其直连的下一级子交换机得到的部分聚合数据。当超时聚合节点为根交换机时,那么,超时聚合节点获取第一数据,具体为:根交换机对直连的子交换机发送的不携带超时标志位的多个数据进行聚合得到第一数据。如此,根据超时聚合节点在集群中的另一种角色,区分其获取计算数据密集型计算任务的部分聚合结果的方式,使得数据聚合处理的过程更加可靠。

在另一种可能的实现方式中,当超时聚合节点和超时节点直连,超时聚合节点是超时节点上一级的子交换机或根交换机时,假设集群中还包括:第一节点、第二节点和第三节点,第一节点、第二节点和第三节点为与超时聚合节点直连的子交换机或计算节点,那么,该超时聚合节点作为子交换机或根交换机的角色时执行的操作可以包括:在第一时刻,接收第一节点发送的第五数据,接收第二节点发送的第六数据;当从第一时刻经历第一阈值到达第二时刻,该超时聚合节点还没有接收到第三节点发送的数据,则,确定第三节点为超时节点,对第五数据和第六数据进行聚合得到第七数据,第七数据中携带第三节点的第二标识,第二标识用于指示第三节点为超时节点。同时,超时聚合节点还在预留存储空间中,生成旁路表项,该旁路表项包括第三节点的标识和聚合命令标识,该旁路表项用于指示第三节点执行聚合命令超时。该实现方式中,该超时聚合节点以超时聚合节点的角色获取第二数据具体可以包括:在第二时刻之后,接收第三节点发送的第八数据;确定该第八数据和旁路表项匹配;可选地,在第八数据中添加超时标志位得到第二数据。在第八数据中添加超时标志位得到第二数据之后,方法还包括:删除旁路表项。此外,当超时聚合节点为子交换机时,该方法还包括:超时聚合节点向超时聚合节点直连的上一级子交换机或根交换机发送第七数据。这样,在超时节点为超时聚合节点直连的下一级节点时,该超时聚合节点作为一个子交换机或根交换机,进行部分聚合后将部分聚合结果上送,同时通过旁路表项记录其直连的超时节点的超时情况,可以有效指导超时节点的待聚合数据的转发,使得聚合过程有序、高效的进行;而且,在超时聚合节点接收到超时节点的待聚合数据后,将超时节点对应的旁路表项删除,不仅释放了该旁路表项占用超时聚合节点的空间,而且避免了该旁路表项误导后续聚合操作,提高聚合操作的可靠性。

在另一种可能的实现方式中,当超时聚合节点和超时节点直连,超时聚合节点是超时节的上一级的子交换机或根交换机时,假设集群中还包括:第一节点、第二节点和第三节点,第一节点、第二节点和第三节点为与超时聚合节点直连的子交换机或计算节点,且管理节点确定第三节点为超时节点,则,超时聚合节点设置(或管理节点在超时聚合节点上设置)第三节点不参与在超时聚合节点中执行的部分聚合操作。该情况下,该超时聚合节点作为子交换机或根交换机的角色时执行的操作可以包括:接收第一节点发送的第五数据,接收第二节点发送的第六数据;对第五数据和第六数据进行聚合得到第七数据,第七数据中携带第三节点的第二标识,第二标识用于指示第三节点为超时节点。此外,当超时聚合节点为子交换机时,超时聚合节点还向超时聚合节点直连的上一级子交换机或根交换机发送第七数据。这样,超时聚合节点作为根交换机或子交换机的角色时,无需考虑第三节点的待聚合数据,可以快速完成部分聚合,实现高效的数据聚合处理。此外,第三节点发送给超时聚合节点的待聚合数据中可以携带超时标志位。

第二方面,本申请提供一种数据处理装置,该数据处理装置应用于集群中的超时聚合节点,集群用于计算数据密集型计算任务,该装置获取单元、第一聚合单元和通知单元,其中:获取单元,用于获取第一数据,第一数据为计算数据密集型计算任务中的部分聚合数据,第一数据携带超时节点的第一标识,第一标识用于指示超时节点发生超时;获取单元,还用于根据超时节点的第一标识获取超时节点的第二数据,第二数据是超时节点发送的待聚合数据;第一聚合单元,用于按照预设规则聚合第一数据和第二数据得到第三数据,第三数据为完全聚合数据;通知单元,用于向集群中的各计算节点通知第三数据。

可选地,第一数据为集群中的根交换机接收直连的各子交换机发送的第四数据后,对所有第四数据进行聚合得到的数据,其中,第四数据包括与超时节点直连的子交换机发送的部分聚合数据。

可选地,第一聚合单元包括第一确定子单元、第一聚合子单元和第二聚合子单元,其中:第一确定子单元用于确定第一数据和第二数据的数据类型;第一聚合子单元用于当数据类型的聚合结果与聚合顺序无关,则,根据获取顺序聚合第一数据和第二数据得到第三数据;第二聚合子单元用于当数据类型的聚合结果与聚合顺序相关,则,按照预设的聚合顺序聚合第一数据和第二数据得到第三数据。

可选地,超时节点为超时节点直连的子交换机根据本地预设的时间阈值确定的;或者,超时节点为管理节点基于历史聚合操作中各计算节点的聚合情况确定的。

可选地,第二数据包括超时标志位,超时标识位用于指示第二数据为超时节点的待聚合数据,在超时聚合节点参与聚合。

可选地,当超时节点为超时节点直连的子交换机根据本地预设的时间阈值确定的,超时标志位为超时节点直连的子交换机基于本地的旁路表项生成并添加在第二数据中的。

可选地,旁路表项为超时节点直连的子交换机确定超时节点超时后在本地存储空间生成的,旁路表项用于指示超时节点和聚合命令的对应关系。

可选地,当超时节点为管理节点基于历史聚合操作中各计算节点的聚合情况确定的,超时标志位为超时节点添加在第二数据中的。

可选地,集群中选择超时聚合节点的策略包括但不限于:选择策略一、选择集群中的一个固定节点作为超时聚合节点;选择策略二、按照网络负载情况确定一个节点作为超时聚合节点,例如选择负载最轻的节点作为超时聚合节点;选择策略三、按照集群中各节点的标识随机选择一个节点作为超时聚合节点;选择策略四、基于各节点距离根交换机的跳数或链路开销确定一个节点作为超时聚合节点,例如选择距离根交换机的跳数最少或链路开销最小的节点作为超时聚合节点。

可选地,超时聚合节点为计算节点或管理节点。

可选地,超时聚合节点为子交换机或根交换机。

可选地,超时聚合节点为超时节点直连的上一级子交换机或根交换机。

可选地,该数据处理装置还包括:第一接收单元和第二聚合单元,其中,第一接收单元用于在第一时刻,接收第一节点发送的第五数据,接收第二节点发送的第六数据;第二聚合单元用于当第二时刻未接收到第三节点发送的数据时,对第五数据和第六数据进行聚合得到第七数据,第七数据中携带第三节点的第二标识,第二标识用于指示第三节点为超时节点,从第一时刻到第二时刻经历的时长超过第一阈值;其中,第一节点、第二节点和第三节点为与超时聚合节点直连的子交换机或计算节点。

可选地,当第二时刻未接收到第三节点发送的数据时,该数据处理装置还包括:生成单元,用于在预留存储空间中,生成旁路表项,旁路表项包括第三节点的标识和聚合命令标识,旁路表项用于指示第三节点执行聚合命令超时。

可选地,获取单元可以包括接收子单元和添加子单元,其中,接收子单元用于在第二时刻之后,接收第三节点发送的第八数据;第二确定子单元用于确定第八数据和旁路表项匹配;添加子单元,用于在第八数据中添加超时标志位得到第二数据。

可选地,该数据处理装置还包括:删除单元,用于在第八数据中添加超时标志位得到第二数据之后,删除旁路表项。

可选地,第一节点、第二节点和第三节点为与超时聚合节点直连的子交换机或计算节点,第三节点为超时节点,该数据处理装置还包括:设置单元,用于设置第三节点不参与在超时聚合节点中执行的部分聚合操作。

可选地,该数据处理装置还包括:第二接收单元,用于接收第一节点发送的第五数据,接收第二节点发送的第六数据;第三聚合单元,用于对第五数据和第六数据进行聚合得到第七数据,并第七数据中携带第三节点标识,得到第七数据,第七数据中携带第三节点的第二标识,第二标识用于指示第三节点为超时节点。

可选地,当超时聚合节点为子交换机时,该数据处理装置还包括:发送单元,用于向超时聚合节点直连的上一级子交换机或根交换机发送第七数据。

可选地,当超时聚合节点为非根交换机时,获取单元具体用于:接收集群的根交换机发送的第一数据;当超时聚合节点为根交换机时,获取单元具体用于:对直连的子交换机发送的不携带超时标志位的多个数据进行聚合得到第一数据。

可选地,集群为高性能计算集群或人工智能集群。

可选地,第二数据携带在报文中,报文的报文头的预留字段中定义超时标志位,预留字段的值用于指示产生第二数据的超时节点。

第三方面,本申请提供一种数据处理设备,数据处理设备包括处理器和存储器;存储器,用于存储计算机指令;处理器,用于根据计算机指令执行如第一方面或第一方面任一种可能实现方式中的数据处理方法的操作步骤。

第四方面,本申请提供了一种集群,集群至少包括超时节点、超时聚合节点和与超时节点直连的上一级子交换机,其中:超时聚合节点,用于执行如第一方面或第一方面任一种可能实现方式中的数据处理方法中超时聚合节点执行的操作;超时节点,用于执行如第一方面或第一方面任一种可能实现方式中的数据处理方法中超时节点执行的操作;子交换机,用于执行如第一方面或第一方面任一种可能实现方式中的数据处理方法中子交换机执行的操作。

第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法的操作步骤。

第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法的操作步骤。

本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

附图说明

图1为本申请提供的一种HPCC 100的逻辑结构示意图;

图2为本申请提供的一种子交换机201的逻辑结构示意图;

图3为本申请提供的一种数据处理方法的流程交互图;

图4为本申请提供的一种数据处理方法装置的结构示意图;

图5为本申请提供的一种数据处理方法设备的结构示意图。

具体实施方式

下面将结合附图,对本申请所要保护的技术方案进行描述。

随着信息时代的到来,各行各业每时每刻都产生大量的数据,而所产生的大量数据中往往会潜藏一定的规律和趋势,这些规律和趋势对于很多领域有十分重要的作用。因此,很多领域都需要对该领域海量的数据进行分析和处理。目前,通常采用高性能计算集群或人工智能集群等集群对海量数据进行分析和处理。以气象数值预报为例介绍HPCC的工作过程,其中,气象数值预报是指利用数值方法,在一定的初值条件下求解一组表征大气运动状态的数学物理方程组,计算大气的量或场(如温度、风向和风速及湿度等)可能的变化情况,从而由目前的天气状态推衍出未来一段时间内的天气状况。一方面,气象数值预报需要对大量的观测数据进行质量检查和同化分析才能获得初值条件,处理过程计算量很大;另一方面,数值求解上百万个自由度的控制偏微分方程组本身也需要大量的计算。另外,气象数值预报需要在尽可能短的时间内完成,人工及普通计算机进行计算需要的时间长,无法满足气象数值预报业务高时效性的要求。因此,气象数值预报等数据量大、计算任务复杂的场景都要使用HPCC等集群。HPCC应用的领域可以包括但不限于下述各领域:气象数值预报、生物或生命科学中生物分子研究和基因工程计算。又例如:AI集群应用的领域可以包括但不限于:使计算机能够更加智能和形象的模拟人的某些思维过程和智能行为。

集群利用多个计算节点聚集起来的强大的综合计算能力,来处理大型计算任务,例如:处理普通工作站无法单独处理的数据密集型计算任务。集群处理计算任务的原理是:集群中将一个计算任务划分为若干个计算子任务,为每个计算节点分配计算子任务,由各计算节点同时运行处理对应的计算子任务,有效的缩短完成整个计算任务所需的计算时间。

在一些计算任务中,需要将各计算节点的待聚合数据进行聚合,并将最终聚合结果分发给各计算节点。其中,待聚合数据具体可以是计算任务对应数据类型的数据,计算任务对应数据类型包括但不限于:整型、浮点型、布尔型,即,待聚合数据可以为整型数据、浮点型数据或布尔型数据。聚合是指将各计算节点上的多个待聚合数据进行合并处理得到一个数据的过程。对多个待聚合数据进行合并处理的过程,具体可以是对多个待聚合数据进行数学公式运算,例如:对多个待聚合数据进行相加,获得的和为聚合结果。

本申请中,集群用于处理数据密集型任务,集群具体可以包括存储系统、管理节点和多个节点,其中,所述多个节点包括交换机和计算节点,而交换机也可以包括一个根交换机和多个子交换机。

下面以HPCC为例介绍集群的逻辑结构。

图1为本申请提供的一种HPCC 100的逻辑结构示意图,如图所示,该HPCC 100包括:计算节点集合10、交换机集合20、管理节点30和存储系统40。其中,计算节点集合10中包括计算节点111、计算节点112、计算节点113、计算节点121、计算节点122、计算节点131、……计算节点137共12个计算节点,交换机集合20包括子交换机250、子交换机201、子交换机202、子交换机203以及根交换机240。各计算节点通过至少一级子交换机连接到根交换机,例如:计算节点111分别通过子交换机250和子交换机201这两级子交换机连接到根交换机240,又例如:计算节点113通过子交换机201这一级子交换机连接到根交换机240。需要说明的是,HPCC 100中的计算节点集合10包括的计算节点的个数、交换机集合20包括的交换机的个数、各计算节点和子交换机之间的连接关系、子交换机之间的连接关系以及子交换机和根交换机之间的级联部署方式均不构成对本申请所要保护的技术方案的限定,具体实施过程中可以基于实际的需求进行灵活设置。

HPCC 100中,管理节点30用于响应用户应用程序的聚合指示,发布计算任务给各计算节点;各计算节点用于将聚合数据发送给该计算节点直连的上一级子交换机;子交换机用于接收其直连的下一级计算节点或子交换机发送的待聚合数据,还用于对所接收的待聚合数据进行聚合操作得到聚合结果,以及将所得到的聚合结果上送给直连的上一级子交换机或根交换机;根交换机240用于接收其直连的下一级子交换机发送的待聚合数据,还用于对所接收的待聚合数据进行聚合操作得到聚合结果,此时,当HPCC 100中不存在超时节点时,根交换机240所得到的聚合结果为最终聚合结果,根交换机240还用于将所得到的聚合结果通知所有的计算节点;当HPCC 100中存在超时节点时,根交换机240还用于将所得到的聚合结果发送给超时聚合节点,为超时聚合节点进行最终聚合提供数据基础。其中,各子交换机,是指一侧直接连接或通过其他子交换机连接计算节点并且另一侧直接连接或通过其他子交换机连接根交换机的交换机;根交换机240,是指子交换机最终汇聚连接到的交换机。

HPCC 100中,管理节点30可以部署在HPCC 100中的任意位置,例如:管理节点30通过子交换机203连接到根交换机240。存储系统40可以部署在HPCC 100中的任意位置,例如:存储系统40通过子交换机201连接到根交换机240。

需要说明的是,HPCC 100中,各计算节点具体可以是具有计算能力的处理器、处理器的核或服务器。子交换机以及根交换机具体可以是具有数据交换功能和聚合功能的任意型号的交换机。管理节点具体可以是对集群具有管理能力的处理器、处理器的核或服务器。存储系统40具体可以指具有存储功能的存储空间或存储芯片。

本申请提供了一种数据处理方法,该方法应用于处理数据密集型计算任务的集群中,当某个子交换机接收到直连的各个下一级计算节点或子交换机发送的待聚合数据的时间差异较大时,或者,当根交换机接收到直连的各个下一级子交换机发送的待聚合数据的时间差异较大时,无需等待时延较大的待聚合数据,而是对部分待聚合数据进行部分聚合操作,将该部分聚合操作所得的部分聚合数据上送后即可释放该子交换机或根交换机上用于作该次聚合操作的线程或进程所占用的网络资源,并且,仅需要一个超时聚合节点继续等待时延较大的待聚合数据并执行最后聚合操作,完成最终的聚合。可见,本申请在不影响用户应用程序获得最终聚合结果的同时,避免了一个聚合操作处理周期内长时间占用多个子交换机以及根交换机的网络资源的问题,提高了集群对数据聚合处理的效率。

在本申请提供的技术方案中,在集群的根交换机以及各子交换机中具有聚合功能模块且预置时间阈值。其中,聚合功能模块能够对所接收的待聚合数据进行聚合操作得到聚合结果。时间阈值为该根交换机或子交换机从下一级直连节点接收待聚合数据的持续等待的最大时长。具体而言,从该根交换机或子交换机接收到第一个待聚合数据开始计时,经历时间阈值时该根交换机或子交换机将不再等待其余未接收到的待聚合数据,利用聚合功能模块对已接收到的待聚合数据进行部分聚合。需要说明的是,根交换机或各子交换机的时间阈值可以相同,也可以不同,在本申请中不作具体限定。其中,在时间阈值内未接收到的待聚合数据对应的节点称为超时节点,一次聚合中,超时节点可以有一个也可以有多个,超时节点可以是计算节点也可以是子交换机。

另一方面,在集群的根交换机以及各子交换机中还具有旁路模块。旁路模块可以指在交换机中预留一个存储空间,例如,将交换机中的寄存器作为该预留的存储空间。根交换机或子交换机中的旁路模块用于在预留的存储空间记录该根交换机或子交换机直连的下一级节点的超时情况,例如,当某个计算节点超时,该计算节点直连的上一级子交换机中的旁路模块在预留的存储空间中建立与超时节点对应的旁路表项,该旁路表项具体可以包括超时节点的标识和聚合命令的标识,用于指示该超时节点执行该聚合命令时出现超时。

又一方面,在集群中具有一个超时聚合节点,该超时聚合节点用于在出现超时节点时进行最终的聚合操作。该超时聚合节点可以是集群的具有聚合功能的任意一个节点,例如:该超时聚合节点可以是任意一个计算节点或任意一个交换机,又例如:该超时聚合节点也可以专门用于在出现超时节点时进行最终聚合的专用节点。该超时聚合节点获取根交换机聚合得到的第一数据,该第一数据为携带超时节点的标识的部分聚合数据,也获取各超时节点发送的第二数据,即可将第一数据和所有超时节点对应的第二数据进行聚合得到最终的完全聚合数据,从而该超时聚合数据将该完全聚合数据作为最终聚合结果通知到各计算节点。超时聚合节点的选择策略具体可以参见图3所示的方法实施例中的相关描述。

接下来,结合附图详细介绍本申请提供的数据处理方法。

以图1中子交换机201为例介绍集群中的子交换机或根交换机。图2是本申请实施例中一种子交换机201的逻辑结构图,与图1中的子交换机201相比,增加了旁路模块221和定时器231。其中,旁路模块221用于在子交换机201确定直连的计算节点超时时,在预留的存储空间上写入对应的旁路表项;定时器231的取值为所述时间阈值。当开始一个聚合操作时,子交换机201的定时器231从接收到第一个待聚合数据开始计算,一种情况下,在时间阈值内接收到所有直连的下一级节点发送的待聚合数据,则,定时器231复位,并触发聚合功能模块211对所有的待聚合数据进行聚合得到聚合结果;或者,另一种情况下,在定时器231达到时间阈值仍然未接收到所有直连的下一级节点发送的待聚合数据,则,定时器231复位,触发聚合功能模块211对所接收的待聚合数据进行聚合得到部分聚合结果,并触发旁路模块221在预留的存储空间中建立旁路表项。此外,该子交换机201还包括通信模块(图2中未示出),用于实现该子交换机201和其他设备之间的信息交互,例如,通信模块用于从直连的下一级节点接收待聚合数据,还用于将聚合功能模块211得到的聚合结果发送给根交换机240,还用于将超时节点发送的待聚合数据发送给超时聚合节点。

上述为以HPCC 100为例对本申请提供的数据处理方法以及其适用的集群进行了介绍,本申请还适用于其他的集群,例如AI集群,AI集群的数据处理方法以及集群结果和上述描述类似,下面简单说明AI集群的特点以及在数据处理过程中与HPCC的区别点。

以AI集群常用的分布式训练架构结构为参数服务器(parameter server,PS)架构为例,PS架构的具体可以是包括参数服务器连接多个计算节点。对于AI集群,Parameterserver用于存放模型的参数,聚合各计算节点返回待聚合数据(也称为梯度)并用聚合结果更新模型的参数,将更新后模型的参数广播给各计算节点;各计算节点基于Parameterserver发送的模型的参数计算该模型的参数的梯度,将梯度作为待聚合数据发送给Parameter server,依此类推,实现对模型的参数的训练。需要说明的是,参数即模型本身,梯度为更新模型的参数的系数。

其中,参数服务器和各计算节点通过交换机进行连接,所以,PS架构中计算节点和交换机之间的逻辑结构类似图1所示。其中,根交换机240可以连接参数服务器。如此,为了缓解参数服务器的负担,将参数服务器上聚合梯度的功能卸载到各级交换机上执行。所以,AI集群和图1所示的HPCC的区别为:1、待聚合数据为梯度;2、通知各计算节点的不是最终聚合结果,而是参数服务器使用最终聚合结果对模型的参数进行更新后得到的新的模型的参数;3、各计算节点需要将所接收的新的模型的参数进行计算获得对应的梯度,以计算所得的梯度作为待聚合数据上送给直连的子交换机。

下面以图1所示的HPCC 100为例,结合图3详细介绍本申请所提供的数据处理方法,该方法应用于HPCC 100的超时聚合节点,HPCC 100可以处理数据密集型计算任务。其中,当需要进行一次聚合操作时,用户应用程序可以指示HPCC 100中的任意一个计算节点向管理节点30申请网络聚合资源,管理节点30响应该申请在HPCC 100中发起聚合;接着,管理节点30将所申请的网络聚合资源发送给HPCC 100中的各计算节点,基于此,各计算节点分别发送待聚合数据,并等待接收该次聚合操作的最终聚合结果。本实施例以存在超时节点的聚合过程(即,各计算节点分别发送待聚合数据,并等待接收该次聚合操作的最终聚合结果的过程)为例进行介绍。

本实施例中,超时聚合节点具体是指由根交换机240和/或管理节点30确定的,用于存在超时节点时完成最终聚合操作的节点。超时聚合节点可以是HPCC 100中的任意一个能够和根交换机240通信并具有聚合功能的节点,例如可以是任意一个计算节点、任意一个子交换机、根交换机或管理节点。

作为一个示例,管理节点30或根交换机240可以从所有的节点中,选择一个节点作为超时聚合节点,如果管理节点30确定超时聚合节点,那么,管理节点30还需要将所确定的超时聚合节点的相关信息同步至根交换机240。作为另一个示例,也可以由管理节点30和根交换机240共同确定超时聚合节点,具体过程可以包括:管理节点30先从所有的节点中,选择至少一个节点作为备选的超时聚合节点;然后,管理节点30将备选的超时聚合节点的相关信息同步至根交换机240;接着,由根交换机240从至少一个备选的超时聚合节点中选择一个作为最终选定的超时聚合节点。

其中,上述管理节点30或根交换机240确定超时聚合节点的选择策略,以及交换机240从至少一个备选的超时聚合节点中确定最终选定的超时聚合节点的选择策略,包括但不限于以下情况中至少一种:

情况1、选择一个固定的节点作为超时聚合节点;

情况2、按照集群中各节点的标识随机选择一个节点作为超时聚合节点;

情况3、按照各节点的网络负载情况确定一个节点作为超时聚合节点,例如选择网络负载最轻的节点作为超时聚合节点;

情况4、基于各节点距离根交换机240的跳数或链路开销确定一个节点作为超时聚合节点,例如选择距离根交换机240的跳数最少或链路开销最小的节点作为超时聚合节点。其中,节点距离根交换机240的跳数是指该节点的报文被从该节点传输至根节点所经历的网络设备的数量。

此外,超时聚合节点也可以与根交换机240直连的专用节点,该专用节点是指在HPCC100中不执行其他操作,也不被分配计算任务,专门负责在HPCC 100的聚合过程中存在超时节点时完成最终的聚合操作。

图3所示的方法中,以超时聚合节点是计算节点121、超时节点为计算节点112为例进行介绍。如图3所示,该方法包括:

S301,根交换机240向超时聚合节点121发送第一数据,该第一数据为所述计算数据密集型计算任务中的部分聚合数据,该第一数据携带超时节点112的第一标识,所述第一标识用于指示超时节点112发生超时。

S302,超时聚合节点121获取第一数据。

其中,超时节点具体可以是超时节点直连的子交换机或根交换机根据本地预设的时间阈值确定的;和/或,管理节点基于历史聚合操作中各计算节点的聚合情况确定的。

在一些可能的实现方式中,如果超时节点112是子交换机250基于本地的时间阈值确定的,那么,根交换机240获得第一数据的过程可以包括:S21,根交换机240分别接收到子交换机201、子交换机202和子交换机203发送的第一聚合数据、第二聚合数据和第三聚合数据;S22,根交换机240按照预设规则聚合第一聚合数据、第二聚合数据和第三聚合数据,得到第一数据,由于第一聚合数据中携带超时节点112的第一标识,所以,第一数据中也携带有超时节点112的第一标识。其中,子交换机202和子交换机203直连的各计算节点中没有超时节点,所以,子交换机202获得第二聚合数据和子交换机203获得第三聚合数据的过程均与上述根交换机240获得第一数据的过程相同。虽然子交换机201直连的计算节点113未超时,但是,子交换机201通过子交换机250连接的计算节点112超时,所以,子交换机201获得第一聚合数据的过程可以包括:S31,子交换机250在时间阈值内仅接收到计算节点111发送的数据a,子交换机250确定计算节点112超时;S32,子交换机250为数据a添加超时节点112的标识,并将添加超时节点112的标识的数据a发送给子交换机201;S33,子交换机250在预留的存储空间中添加旁路表项,该旁路表项包括聚合命令X的标识和超时节点112的标识,用于指示超时节点112在执行聚合命令X时发生超时;S34,子交换机201在时间阈值内接收到数据a和计算节点113发送的数据c;S35,子交换机201按照预设规则聚合数据a和数据c,得到第一聚合数据,由于数据a中携带超时节点112的第一标识,所以,第一聚合数据中也携带有超时节点112的第一标识。需要说明的是,上述S33和S34的执行不限定顺序,可以先后执行也可以同时执行。

上述时间阈值,用于约束根交换机或子交换机接收待聚合数据的等待时长,从该根交换机或子交换机接收到第一个待聚合数据开始,如果时间阈值内存在未接收到的待聚合数据,那么,为接收到的待聚合数据对应的节点可以视作超时节点。根交换机以及各子交换机的时间阈值可以均相同,也可以均不同,还可以部分相同(例如:相同级的子交换机设置相同的时间阈值)。

对于旁路表项,通常只在超时节点112直连的子交换机250上生成,无需在其他节点中同步记录该旁路表项。

在另一些可能的实现方式中,如果超时节点112是管理节点30基于历史聚合操作中各节点的时延情况确定的,那么,根交换机240获得第一数据的过程与上述S21~S22相同,区别在于子交换机201获得第一聚合数据的过程。根交换机240以及各子交换机基于本地配置的聚合节点位图标识(bitmap)进行聚合操作,初始bitmap可以是基于根交换机240以及各子交换机在HPCC 100中的连接关系确定,例如,子交换机250的初始bitmap指示在子交换机250上参与聚合的节点包括计算节点111和计算节点112。该情况下,子交换机201获得第一聚合数据的过程可以包括:S41,当管理节点30确定超时节点为计算节点112时,管理节点30可以修改子交换机250上的bitmap,将计算节点112在该bitmap中的标志位设置为无效,此时,子交换机250的bitmap用于指示子交换机250上进行聚合的计算节点为计算节点111;S42,管理节点30告知计算节点112为超时节点;S43,超时节点112在数据b中添加超时节点112的超时标志位,超时标志位用于指示数据b为超时节点112的待聚合数据,在超时聚合节点121参与聚合;S44,子交换机250接收到计算节点111发送的数据a和计算节点112发送的数据b;S45,子交换机250基于本地的bitmap,将数据a发送给子交换机201,将数据b通过旁路发送给超时聚合节点121;S46,子交换机201接收到数据a和计算节点113发送的数据c;S47,子交换机201按照预设规则聚合数据a和数据c,得到第一聚合数据,由于数据a中携带超时节点112的第一标识,所以,第一聚合数据中也携带有超时节点112的第一标识。需要说明的是,S43和S45中子交换机250将数据b通过旁路发送给超时聚合节点121的相关说明,可以参见下述S303的相关描述。

其中,管理节点3确定的超时节点112,可以不为该次聚合操作之前的任意一次或多次聚合操作中时延较大的节点,在本次聚合操作中超时节点112发生较大时延的可能性较大。管理节点30基于历史聚合操作中各节点的时延情况确定超时节点112的方法,包括但不限于:管理节点30根据预设次数的历史聚合操作中,以子交换机250、子交换机201、子交换机202和子交换机203接收到的第一个数据的时间为基准时间,计算子交换机250、子交换机201、子交换机202和子交换机203分别从直连的计算节点接收到数据的时间差,确定最大的预设个数个时间差对应的计算节点为超时节点,或者,确定大于预置时长(如4秒)的时间差对应的计算节点为超时节点。其中,历史聚合操作指本次聚合操作之前的任意一次或多次聚合操作。例如:管理节点30中查看在前2次聚合操作中,子交换机250、子交换机201、子交换机202和子交换机203接收数据的时间差分别为:0秒、2.1秒、4.5秒、1.3秒、0.5秒、0.5秒、0.3秒、1.5秒、6秒、2秒、3秒和4秒,则,管理节点30可以确定时间差最大的1个计算节点134为超时节点,或者,管理节点30可以确定时间差超过4秒的计算节点113和计算节点134为超时节点。

在另一些可能的实现方式中,超时节点还可以同时由根交换机、各级子交换机以及管理节点30共同确定本,即,在聚合操作之前,由管理节点30基于历史聚合操作中各节点的时延情况,确定超时节点;在聚合操作过程中,再基于实际接收数据的情况,由子交换机或根交换机确定时间阈值内未接收到待聚合数据的超时节点。该情况下,分别按照对应的机制对该机制所确定的超时节点发送的待聚合数据进行处理即可,在此不再赘述。

上述各实现方式中,触发子交换机或根交换机240执行聚合操作的方式包括以下方式中任意一种:

方式一:接收到所有直接的下一级节点发送的待聚合数据,或者,本地从接收第一个待聚合数据经历了时间阈值,启动对所接收的待聚合数据的聚合操作。

例如:第一时长内接收到所有下一级直连节点发送的数据再启动聚合操作。即,只要第一时长内交换机202确定接收到了计算节点121、计算节点122和计算节点123分别发送的数据d0、e0和f0,就触发执行S305。

方式二:每接收到一个新的待聚合数据,就在上一次聚合结果的基础上进行一次聚合操作,直到完成对所有直接的下一级节点发送的待聚合数据的聚合操作,或直到从接收第一个待聚合数据经历了时间阈值。

需要说明的是,上述数据可以携带在任意报文的有效载荷(payload)中,接收方通过对所接收到的报文进行解析,获得其payload中携带的数据。例如:数据可以携带在远程直接数据存取(Remote Direct Memory Access,RDMA)报文的payload中。作为一个示例,用于携带数据的报文具体可以按照集合通信协议的格式进行发送。例如,HPCC中用于携带数据的报文的集合通信协议可以包括:消息传递接口(Message Passing Interface,MPI)标准。MPI是用于跨节点通讯的基础软件环境,它提供让相关进程之间进行通信、同步等操作的应用程序接口(Application Programming Interface,API),可以说是并行计算的基础库。

对于S301,根交换机240为了让接收方——超时聚合节点121知晓该第一数据是部分聚合数据,根交换机240在向超时聚合节点121发送第一数据之前,需要在第一数据中添加超时节点112的标识。该超时节点112的标识可以是能够标识超时节点112的任意信息。例如,超时节点112的标识可以是超时节点112的编号112,也可以超时节点112的硬件序列号。

作为一个示例,如果聚合操作具体是将待聚合数据进行累加,超时节点112的标识是112,第一数据通过RDMA报文发送给超时聚合节点121,则该RDMA报文的payload中承载数值等于第一数据的数值,该RDMA报文的报文头的保留字段携带112,用于告知超时聚合节点121接收到的第一数据为部分聚合数据,且计算节点112为超时节点。

当超时聚合节点为任意计算节点、子交换机、管理节点或与根交换机直连的专用节点时,S302具体为:超时聚合节点从根交换机240接收第一数据。

当超时聚合节点为根交换机时,S302具体为:超时聚合节点对直连的子交换机发送的不携带超时标志位的多个数据进行聚合得到所述第一数据。

对于各子交换机以及根交换机,无论其直连的下一级节点是否存在超时的情况,均可以在将聚合结果发送给直连的上一级子交换机或根交换机时,释放该子交换机用于作本次聚合操作的线程或进程所占用该子交换机的网络资源,无需长时间占用网络资源等待超时节点的待聚合数据,释放的网络资源可以用于执行其他的操作,从而大大提高了聚合处理效率。

S303,超时节点112向超时聚合节点121发送第二数据,该第二数据是超时节点112发送的待聚合数据。

S304,超时聚合节点121获取第二数据。

需要说明的是,第二数据与上述数据b表示相同的数据,均为超时节点112发送的待聚合数据。

作为一个示例,该第二数据中可以包括超时标志位,超时标识位用于指示该第二数据为超时节点112的待聚合数据,在超时聚合节点121参与聚合,其他接收到该第二数据的节点仅需要将该第二数据进行旁路转发即可。

当超时节点112为子交换机250根据本地预设的时间阈值所确定时,该第二数据的超时标志位为超时节点112直连的子交换机250基于本地的旁路表项生成并添加在所述第二数据中的。该旁路表项为子交换机250确定超时节点112超时后在本地预设的存储空间生成的,该旁路表项用于指示超时节点112和聚合命令X的对应关系,具体可以包括超时节点112的标识和聚合命令X的标识。具体实现时,超时节点112向超时聚合节点121发送第二数据的过程可以包括:超时节点112分别通过子交换机250、子交换机201、根交换机240、子交换机202将第二数据发送至超时聚合节点121。如果与超时节点112直连的子交换机250和超时聚合节点121可以通过其他的路径通信,也可以通过其他路径向超时聚合节点121发送第二数据。其中,在第二数据到达子交换机250时,子交换机250将第二数据与旁路表项进行匹配,确定该第二数据是在聚合操作X中超时节点112发送的待聚合数据,则,在第二数据中增加旁路标志位后,将添加了旁路标志位的第二数据继续进行旁路转发。

需要说明的是,为了节约存储空间,使得每次聚合操作所产生的旁路表项不影响之后的聚合操作,各次聚合操作均能够有效进行,当具有旁路表项的根交换机240或子交换机接收到超时节点发送的第二数据后,基于该超时节点对应的旁路表项为该第二数据添加超时标志位后,即可删除该旁路表项。其中,超时标志位也可以称为旁路标志位。

当超时节点112为管理节点30基于历史聚合操作中各计算节点的聚合情况确定的,则,该第二数据中的超时标志位为超时节点112自己添加在第二数据中的。具体实现时,超时节点112向超时聚合节点121发送第二数据的过程可以包括:超时节点112分别通过子交换机250、子交换机201、根交换机240、子交换机202将添加了旁路标志位的第二数据发送至超时聚合节点121。

需要说明的是,第二数据携带在报文中,该报文的报文头的预留字段中定义超时标志位,预留字段的值用于指示产生第二数据的超时节点112。作为一个示例,如果第二数据通过RDMA报文发送给超时聚合节点121,则该RDMA报文的payload中承载数值等于第二数据的数值,该RDMA报文的报文头的保留字段携带超时标示位,用于告知超时聚合节点121接收到的第二数据为超时节点112的待聚合数据,且在超时聚合节点121处要执行聚合操作。

需要说明的是,执行上述S301~S304之后,超时聚合节点121接收到第一数据和第二数据,为进行最终聚合的提供了数据基础。

需要说明的是,上述S301~S302和S303~S304不限定执行的先后顺序,可以先后执行也可以同时执行。

S305,超时聚合节点121按照预设规则聚合第一数据和第二数据得到第三数据,该第三数据为完全聚合数据。

具体实现时,S305具体可以包括:S51,确定第一数据和第二数据的数据类型;S52,当所述数据类型的聚合结果与聚合顺序无关,则,根据获取顺序聚合所述第一数据和所述第二数据得到第三数据;S53,当所述数据类型的聚合结果与聚合顺序相关,则,按照预设的聚合顺序聚合所述第一数据和所述第二数据得到第三数据。

聚合结果与聚合顺序是否相关,取决于待聚合数据的数据类型。其中,数据类型的聚合结果与聚合顺序无关,是指聚合结果不会因为聚合顺序变化而发生改变,例如:待聚合数据为整型数据,那么,可以不考虑聚合顺序,以任意的顺序对所接收的待聚合数据进行聚合。相应的,数据类型的聚合结果与聚合顺序相关,是指聚合结果会因为聚合顺序变化而发生改变,例如:待聚合数据为浮点型数据,可以理解的是,浮点型数据在计算时,计算机会对浮点型数据按照“有效数字位+指数位”进行描述,例如1/3+2/3+2/3=(3.333*10-1+6.667*10-1)+6.667*10-1=1.000*100+6.667*10-1=1.667*100,其中,1.667为1.6667四舍五入得到的;但是,2/3+2/3+1/3=(6.667*10-1+6.667*10-1)+3.333*10-1=1.333*100+3.333*10-1=1.666*100,其中,1.666为1.6663四舍五入得到的,可见,对于浮点型数据,如果倒换聚合顺序,获得的聚合结果是存在差异的,那么,需要严格按照预置的聚合顺序进行聚合。

由于不同的应用场景对于聚合结果的精度要求不同,本申请实施例中还可以按照集群的精度的要求确定是否要严格按照预设的顺序进行聚合操作,例如,对于AI集群,觉和的是梯度,而且是用于对模型的参数进行训练,精度要求较低,所以无论是何种数据类型的待聚合数据都可以不严格按照预设的顺序进行聚合操作。又例如,对于HPCC,通常聚合精度要求都较高,所以,当待聚合数据的数据类型(如浮点型数据)的聚合结果会受到聚合顺序的影响,则要严格按照预设的顺序进行聚合操作;当待聚合数据的数据类型(如整型数据)的聚合结果不受聚合顺序的影响,则可以不按照预设的顺序进行聚合操作。

需要说明的是,对于待聚合数据受聚合顺序影响的情况,不仅是超时聚合节点121的聚合要按照预设的规则执行,各子交换机以及根交换机240的聚合过程也需要按照预设的聚合顺序进行。

对于S305中,假设待聚合数据为浮点型数据,预设的聚合顺序中计算节点112为最后一个参与聚合的节点,聚合操作为相加,则,S305具体可以为:超时聚合节点121按照第一数据到第二数据的聚合顺序,计算第一数据加第二数据,得到的和记作第三数据。

对于S305,如果存在多个超时节点,那么,触发超时聚合节点121执行聚合操作的条件包括:条件一:接收到所有超时节点发送的多个第二数据并获得第一数据,才启动对所接收的待聚合数据的聚合操作。条件二:接收到一个超时节点发送的待聚合数据,就将该待聚合数据和第一数据进行聚合,后续每接收到一个超时节点发送的待聚合数据,就将该待聚合数据和已有的聚合结果进行一次聚合操作,直到接收到最后一个超时节点发送的待聚合数据,将该待聚合数据和已有的聚合结果进行聚合,得到第三数据,完成最终的聚合操作。

S306,超时聚合节点121向所述集群中的各计算节点通知所述第三数据。

作为一个示例,如果超时聚合节点121可以直接和各计算节点进行通信,则,超时聚合节点121可以将第三数据直接发送给各计算节点。

作为另一个示例,如果超时聚合节点121需要通过子交换机202才能和各计算节点进行间接通信,则,超时聚合节点121可以将第三数据先发送给子交换机202,再由子交换机202发送给各计算节点。

作为又一个示例,如果超时聚合节点121需要依次通过子交换机202、根交换机240和其他一级或多级子交换机才能和各计算节点进行间接通信,则,超时聚合节点121可以将第三数据先发送给子交换机202,再由子交换机202将第三数据发送给根交换机240,由根交换机240将第三数据通过各级子交换机发送给各计算节点。

可见,在集群规模不断扩大的情况下,针对部分节点传输时延较大导致一次聚合操作长时间占用交换机的网络资源从而聚合处理效率较低的问题,本申请实施例提供的数据处理方法,通过确定HPCC中的一个节点为超时聚合节点,由超时聚合节点等待超时节点发出的待聚合数据并执行最后的聚合操作,而各级交换机无需再等待超时节点发出的数据,短时间内即可将未超时的待聚合数据进行聚合后上送聚合结果,缩短了一次聚合操作占用各级交换机的网络资源的时长,提高了对数据的聚合处理效率。

此外,为了有效的实现一次聚合,本申请实施例还在交换机中增加旁路模块,用于在预设的存储空间记录其直连的下一级节点的超时情况,指导该交换机将超时节点发出的待聚合数据通过旁路转发给指定的超时聚合节点,以使得该超时聚合节点能够获得进行最终聚合操作的所有数据,确保该聚合处理能够准确完成。可见,本申请实施例提供的数据处理方法,能够高效、准确、灵活的完成对数据的聚合处理,从而提高了集群中的资源利用率。

在另一些可能的实现方式中,当超时聚合节点为除了计算节点121以外的其他节点时,实现方式和计算节点121作为超时聚合节点的实现方式相同,仅仅是等待超时节点发送待聚合数据以及执行最终聚合操作的节点不同而已。

在另一些可能的实现方式中,超时聚合节点也可能出现超时,那么,仍然可以通过本申请实施例提供的数据处理方法进行聚合处理,区别在于:超时聚合节点直连的上一级子交换机或根交换机的相关操作以及超时聚合节点作为超时节点的相关操作。以超时聚合节点121出现超时为例,一种情况下,子交换机202在计算节点122发送的待聚合数据d中添加超时节点121的标识,并生成旁路表项,该旁路表项包括计算节点121的标识和该聚合命令X的标识;接着,当子交换机202接收计算节点121发送的待聚合数据e后,确定该数据e和旁路表项匹配,在数据e中添加超时标志位;而后,子交换机202将数据3发送给计算节点121,供后续进行最终聚合操作时使用。或者,另一种情况下,子交换机202已知其直连的下一级超时节点为超时聚合节点121,则仅在计算节点122发送的待聚合数据d中添加超时节点121的标识,并不生成超时节点121对应的旁路表项;而且,计算节点121不再向子交换机202发送的数据e,本地保存数据d,供后续进行最终聚合操作时使用。而超时聚合节点实施最终聚合操作的过程和上述图3所示的实施例相同。

需要说明的是,在一次聚合操作中,当不存在超时节点时,则由各级交换机进行逐级聚合并上述聚合结果,由根交换机完成最终聚合操作得到最终聚合结果,并将装置聚合结果通知集群中的各计算节点。

在另一些可能的实现方式中,考虑到交换机之间也可能由于链路拥塞等原因造成超时,对于超时节点为子交换机的场景,一种情况下,超时节点直连的上一级子交换机或根交换机上建立的旁路表项可以包括超时节点的标识和该聚合命令的标识,该超时节点的标识可以用于指示该发生超时的子交换机,这样,后续由超时聚合节点进行最终聚合操作时,需要等待该超时的子交换机发送的待聚合数据,并完成最终的聚合。另一种情况下,由于根交换机已知整个集群的拓扑,则,该旁路表项也可以包括该超时的子交换机直连的下一级各计算节点的标识和该聚合命令的标识,这样,后续由超时聚合节点进行最终聚合操作时,需要等待超时的子交换机直连的下一级各计算节点发送的各待聚合数据,并完成最终的聚合。

上文中结合图1至图3,详细描述了本申请所提供的数据处理方法,下面将结合图4至图5,描述根据本申请所提供的数据处理装置和设备。

图4为本申请提供的一种数据处理装置400,所述数据处理装置400应用于集群中的超时聚合节点,所述集群用于计算数据密集型计算任务,所述数据处理装置400获取单元401、第一聚合单元402和通知单元403;

所述获取单元401,用于获取第一数据,所述第一数据为计算数据密集型计算任务中的部分聚合数据,所述第一数据携带超时节点的第一标识,所述第一标识用于指示所述超时节点发生超时;

所述获取单元401,还用于根据所述超时节点的第一标识获取所述超时节点的第二数据,所述第二数据是所述超时节点发送的待聚合数据;

所述第一聚合单元402,用于按照预设规则聚合所述第一数据和所述第二数据得到第三数据,所述第三数据为完全聚合数据;

所述通知单元403,用于向所述集群中的各计算节点通知所述第三数据。

可选地,所述第一数据为所述集群中的根交换机接收直连的各子交换机发送的第四数据后,对所有所述第四数据进行聚合得到的数据,其中,所述第四数据包括与所述超时节点直连的子交换机发送的部分聚合数据。

可选地,所述第一聚合单元401,包括:第一确定子单元、第一聚合子单元和第二聚合子单元;

所述第一确定子单元,用于确定所述第一数据和所述第二数据的数据类型;

第一聚合子单元,用于当所述数据类型的聚合结果与聚合顺序无关,则,根据获取顺序聚合所述第一数据和所述第二数据得到所述第三数据;

第二聚合子单元,用于当所述数据类型的聚合结果与聚合顺序相关,则,按照预设的聚合顺序聚合所述第一数据和所述第二数据得到所述第三数据。

可选地,所述超时节点为所述超时节点直连的子交换机根据本地预设的时间阈值确定的;或者,所述超时节点为所述管理节点基于历史聚合操作中各计算节点的聚合情况确定的。

可选地,所述第二数据包括超时标志位,所述超时标识位用于指示所述第二数据为所述超时节点的待聚合数据,在所述超时聚合节点参与聚合。

可选地,当所述超时节点为所述超时节点直连的子交换机根据本地预设的时间阈值确定的,所述超时标志位为所述超时节点直连的子交换机基于本地的旁路表项生成并添加在所述第二数据中的。

可选地,所述旁路表项为所述超时节点直连的子交换机确定所述超时节点超时后在本地存储空间生成的,所述旁路表项用于指示所述超时节点和聚合命令的对应关系。

可选地,当所述超时节点为所述管理节点基于历史聚合操作中各计算节点的聚合情况确定的,所述超时标志位为所述超时节点添加在所述第二数据中的。

可选地,所述超时聚合节点为所述集群中的一个固定的节点;或者,所述超时聚合节点为按照网络负载情况确定的一个节点;或者,所述超时聚合节点为按照所述集群中各节点的标识随机选择的一个节点。

可选地,所述超时聚合节点为计算节点或管理节点。

可选地,所述超时聚合节点为子交换机或根交换机。

可选地,所述超时聚合节点为所述超时节点直连的上一级子交换机或根交换机。

可选地,数据处理装置400还包括:第一接收单元和第二聚合单元;

第一接收单元,用于在第一时刻,接收第一节点发送的第五数据,接收第二节点发送的第六数据;

第二聚合单元,用于当第二时刻未接收到第三节点发送的数据时,对所述第五数据和所述第六数据进行聚合得到第七数据,所述第七数据中携带所述第三节点的第二标识,所述第二标识用于指示所述第三节点为超时节点,从所述第一时刻到所述第二时刻经历的时长超过第一阈值;其中,所述第一节点、所述第二节点和所述第三节点为与所述超时聚合节点直连的子交换机或计算节点。

可选地,当所述第二时刻未接收到所述第三节点发送的数据时,所述数据处理装置400还包括:生成单元,用于在预留存储空间中,生成旁路表项,所述旁路表项包括所述第三节点的标识和聚合命令标识,所述旁路表项用于指示所述第三节点执行所述聚合命令超时。

可选地,所述获取单元401,包括:接收子单元,用于在所述第二时刻之后,接收所述第三节点发送的所述第八数据;第二确定子单元,用于确定所述第八数据和所述旁路表项匹配;添加子单元,用于在所述第八数据中添加超时标志位得到所述第二数据。

可选地,所述数据处理装置400还包括:删除单元,用于在所述第八数据中添加超时标志位得到所述第二数据之后,删除所述旁路表项。

可选地,第一节点、第二节点和第三节点为与所述超时聚合节点直连的子交换机或计算节点,所述第三节点为所述超时节点,所述装置还包括:设置单元,用于设置所述第三节点不参与在所述超时聚合节点中执行的部分聚合操作。

可选地,所述数据处理装置400还包括:第二接收单元和第三聚合单元;

第二接收单元,用于接收所述第一节点发送的第五数据,接收所述第二节点发送的第六数据;

第三聚合单元,用于对所述第五数据和所述第六数据进行聚合得到第七数据,并所述第七数据中携带第三节点标识,得到第七数据,所述第七数据中携带所述第三节点的第二标识,所述第二标识用于指示所述第三节点为超时节点。

可选地,当所述超时聚合节点为子交换机时,所述数据处理装置400还包括:发送单元,用于向所述超时聚合节点直连的上一级子交换机或根交换机发送所述第七数据。

可选地,当所述超时聚合节点为非根交换机时,所述获取单元401,用于:接收所述集群的根交换机发送的所述第一数据;当所述超时聚合节点为根交换机时,所述获取单元401,用于:对直连的子交换机发送的不携带超时标志位的多个数据进行聚合得到所述第一数据。

可选地,所述集群为高性能计算集群或人工智能集群。

可选地,所述第二数据携带在报文中,所述报文的报文头的预留字段中定义所述超时标志位,所述预留字段的值用于指示产生所述第二数据的超时节点。

应理解的是,本申请实施例的装置400可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3所示的数据处理方法时,装置400及其各个模块也可以为软件模块。

根据本申请实施例的数据处理装置400可对应于执行本申请实施例中描述的方法,并且数据处理装置400中的各个单元的上述和其它操作和/或功能分别为了实现图3中的方法的相应流程,为了简洁,在此不再赘述。

图5为本申请提供的一种数据处理设备500的示意图,如图所示,所述数据处理设备500包括处理器501、存储器502、通信接口503和内存单元504。其中,处理器501、存储器502、通信接口503、内存单元504通过总线505进行通信,也可以通过无线传输等其他手段实现通信。该存储器502用于存储指令,该处理器501用于执行该存储器502存储的指令。该存储器502存储程序代码,且处理器501可以调用存储器502中存储的程序代码执行以下操作:

获取第一数据,所述第一数据为所述计算数据密集型计算任务中的部分聚合数据,所述第一数据携带超时节点的第一标识,所述第一标识用于指示所述超时节点发生超时;

根据所述超时节点的第一标识获取所述超时节点的第二数据,所述第二数据是所述超时节点发送的待聚合数据;

按照预设规则聚合所述第一数据和所述第二数据得到第三数据,所述第三数据为完全聚合数据;

向所述集群中的各计算节点通知所述第三数据。

应理解,在本申请实施例中,该处理器501可以是CPU,该处理器501还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。

该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。

该存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。

该总线505除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线505。

应理解,根据本申请实施例的数据处理设备500可对应于本申请实施例中的数据处理装置400,并可以对应于执行根据本申请实施例中图3所示方法中的相应主体,并且数据处理设备500中的各个模块的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。

作为另一种可能的实施例,本申请还提供一种集群,该集群包括至少包括超时节点、超时聚合节点和与所述超时节点直连的上一级子交换机,其中:各节点分别用于实现如图3所示的方法的各个操作步骤,为了简洁在此不再赘述。

作为另一种可能的实施例,本申请还提供一种交换机,该交换机包括图2所示的各种功能模块,用于执行如图3所示的方法中根交换机或各子交换机对应的各个操作步骤,为了简洁在此不再赘述。

作为另一种可能的实施例,本申请还提供一种集群,该集群包括第一交换机、第二交换机、根交换机、超时聚合节点、第一计算节点、第二计算节点、第三计算节点、第四计算节点和第五计算节点,所述第一计算节点、所述第二计算节点和所述第三计算节点连接所述第一交换机,所述第四计算节点和所述第五计算节点连接所述第二交换机,所述第一交换机和所述第二交换机连接所述根交换机,其中,所述超时聚合节点为所述集群中的任意节点;

在第一时长内,所述第一交换机接收所述第一计算节点和所述第二计算节点发送的第一数据和第二数据,未接收到所述第二计算节点发送的数据;所述第二交换机接收所述第四计算节点和所述第五计算节点发送的第三数据和第四数据;

所述第一交换机对所述第一数据和所述第二数据进行聚合获得第五数据,并生成旁路表项;所述第二交换机对所述第三数据和所述第四数据进行聚合获得第六数据;其中,所述第五数据为部分聚合数据,所述第五数据包括用于指示所述第三计算节点的超时节点标识,所述旁路表项包括所述第三节点的标识和聚合命令的标识,所述旁路表项用于指示所述第三节点在执行所述聚合命令时超时;

所述第一交换机和所述第二交换机分别将所述第五数据和所述第六数据发送给所述根交换机,释放第一网络资源;

所述根交换机对所述第五数据和所述第六数据进行聚合获得第七数据,所述第七数据中包括所述超时节点标识;

所述根交换机将所述第七数据发送给所述超时聚合节点,并释放第二网络资源;

超过所述第一时长,所述第一交换机接收所述第三计算节点发送的第八数据;

所述第一交换机确定所述第八数据和所述旁路表项中的所述聚合命令匹配,则,在所述第八数据中携带超时标志位,并将携带所述超时标志位的第八数据发送至所述超时聚合节点,所述超时标志位用于指示所述第八数据对应的超时节点为所述第三计算节点;

所述超时聚合节点对所述第七数据和所述携带所述超时标志位的第八数据进行聚合,得到第九数据;

所述超时聚合节点将所述第九数据分别通知所述第一计算节点、所述第二计算节点、所述第三计算节点、所述第四计算节点和所述第五计算节点。

作为另一种可能的实施例,本申请还提供一种集群,该集群包括管理节点、第一交换机、第二交换机、根交换机、超时聚合节点、第一计算节点、第二计算节点、第三计算节点、第四计算节点和第五计算节点,所述第一计算节点、所述第二计算节点和所述第三计算节点连接所述第一交换机,所述第四计算节点和所述第五计算节点连接所述第二交换机,所述第一交换机和所述第二交换机连接所述根交换机,其中,所述超时聚合节点为所述集群中的任意节点;

所述管理节点根据历史聚合操作中的超时情况,确定所述第一计算节点为超时节点;

所述第一交换机设置聚合节点位图标识中所述第一计算节点对应的标志位设置为无效,所述聚合节点位图标识用于指示在所述第一交换机中参与聚合的所述第一交换机的下一级直连节点;

所述第一交换机接收所述第一计算节点、所述第二计算节点和所述第三计算节点发送的第一数据、第二数据和第三数据;所述第二交换机接收所述第四计算节点和所述第五计算节点发送的第四数据和第五数据;其中,所述第一数据携带用于指示所述第一计算节点的为超时节点的超时标志位;

所述第一交换机对所述第二数据和所述第三数据进行聚合获得第六数据,所述第二交换机对所述第四数据和所述第五数据进行聚合获得第七数据;其中,所述第六数据为部分聚合数据,所述第六数据包括超时节点标识,所述超时节点标识用于指示作为超时节点的所述第一计算节点;

所述第一交换机和所述第二交换机分别将所述第六数据和所述第七数据发送给所述根交换机,释放第一网络资源;并且,所述第一交换机将所述第一数据发送给所述超时聚合节点;

所述根交换机对所述第六数据和所述第七数据进行聚合获得第八数据,所述第八数据中包括所述超时节点标识;

所述根交换机将所述第八数据发送给所述超时聚合节点,并释放第二网络资源;

所述超时聚合节点对所述第八数据和所述第一数据进行聚合,得到第九数据;

所述超时聚合节点将所述第九数据分别通知所述第一计算节点、所述第二计算节点、所述第三计算节点、所述第四计算节点和所述第五计算节点。

上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。

以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于可重构全向超表面的无线通信信道估计方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!