一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

交换机和数据处理的系统的制作方法

2022-02-22 02:05:45 来源:中国专利 TAG:


1.本技术涉及通信领域,尤其涉及一种交换机和数据处理的系统。


背景技术:

2.在模拟人的思维过程和智能行为(如训练、推理)的人工智能(artificial intelligence,ai)参数训练,以及利用聚合计算能力来处理计算密集型计算任务的高性能计算(high performance computing,hpc)等场景中,经常需要聚合多个数据节点(数据节点通常为服务器)的同类数据。例如,人工智能参数训练中所使用的聚合处理的计算机程序all_reduce(),以及高性能计算中所使用的消息传递接口(message passing interface,mpi)的聚合处理的计算机程序mpi_all_reduce()。上述聚合处理均由一个独立的聚合节点执行,其中,聚合节点可以是一台独立的服务器,但是,随着数据节点的数量越来越多、数据节点产生的待聚合的数据量也越来越大,数据节点需要向聚合节点传输的数据量也随之增大,而聚合节点则需要处理更多数据,使得整个系统中存在数据传输带宽无法满足要求,导致数据聚合处理的时延增大的问题。因此,如何降低数据聚合的处理时延成为亟待解决的技术问题。


技术实现要素:

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.图1为本技术实施例提供的一种聚合处理的示意图;
41.图2为本技术提供的一种数据处理的系统100的架构示意图;
42.图3为本技术实施例提供的一种交换机的结构示意图;
43.图4为本技术实施例提供的一种数据处理的方法的流程示意图;
44.图5为本技术实施例提供的一种交换机500的结构示意图;
45.图6为本技术实施例提供的另一种交换机600的结构示意图。
具体实施方式
46.为了解决传统技术中数据处理时延高的问题,本技术提出一种数据处理的方法,由数据节点和连接数据节点的交换机共同执行的计算任务,以提升数据处理的效率,为了便于描述,也可以将数据节点和交换机共同执行的计算任务称为分布式计算任务。其中,数据节点可以是计算设备(例如,服务器)形式的节点,也可以是虚拟机或容器等虚拟化形式的节点,此时,虚拟机或容器可以部署在至少一台计算设备(例如,服务器)中,每台计算设备与交换机相连。分布式计算任务包括分布式人工智能(artificial intelligence,ai)计算任务或分布式高性能计算(high-performance computing,hpc)任务或分布式图形计算(graphic computing)任务或分布式云计算任务或其他可以采用分布式计算方式处理的计算任务。其中,分布式云计算任务,是指在人工智能或高性能计算或图像计算或其他场景中,由虚拟机或容器等虚拟化形式的数据节点和交换机共同执行该场景中计算任务。可选地,除了数据节点可以采用虚拟化形式实现外,在分布式云计算任务中,交换机也可以采用虚拟化形式实现。
47.为了便于描述,也可以将数据节点执行的分布式计算任务的操作称为第一操作,将交换机执行的该分布式计算任务的操作称为第二操作。
48.示例地,在人工智能、高性能计算、图形计算等应用场景中,部分计算任务可以采用数据节点和连接数据节点的交换机共同参与数据处理的过程,以数据聚合的分布式计算任务为例,聚合是指将同类数据进行累加的操作。例如,在人工智能或高性能计算场景中,数据节点可以生成同类数据,此时,也可以将数据节点生成同类数据的操作称为分布式计算任务的第一操作。同类数据包括人工智能场景使用的算法中同类参数、或者计算密集型任务生成的同类数据,具体同类数据可以根据应用场景和业务需求设定;交换机可以对数据节点生成的同类数据执行数据聚合操作,进而获得同类数据的聚合结果,此时,也可以将交换机对数据节点生成的同类数据执行数据聚合的操作称为第二操作。
49.图1为本技术提供的一种聚合操作的示意图,如图所示,数据节点a、数据节点b和数据节点c分别生成3类参数,例如,数据节点a生成a0、a1和a2,数据节点b生成b0、b1和b2、数据节点c生成c0、c1和c2。假设尾数相同的数据为同类数据,则交换机执行聚合操作后所获得的聚合结果包括a0 b0 c0、a1 b1 c1和a2 b2 c2。
50.接下来,以分布式计算任务为数据聚合处理为例,结合附图对本技术所要保护的技术方案进行详细描述。
51.图2是本技术实施例提供的一种数据处理的系统100的架构示意图,如图所示,系统100包括交换网络10和数据节点20,数据节点20与交换网络10相连。
52.其中,数据节点20,用于生成分布式计算任务待处理的数据,例如,人工智能的参数训练和/或高性能计算场景中数据密集型计算任务的待聚合的同类数据,并以报文的形式将待聚合的同类数据发送至与其连接的交换机。示例地,如图2所示,数据节点20包括六个数据节点,其中,数据节点201至203与交换机102相连,数据节点204至206与交换机103相连,交换机102和交换机103通过交换机101相连,进而实现数据节点之间的通信连接,每个
数据节点可以将其生成的待聚合的同类数据发送至交换网络10,由交换网络10中交换机执行数据聚合操作。
53.交换网络10,用于实现系统100中数据传输和执行分布式计算任务的操作(例如,聚合数据的分布式计算任务中执行数据聚合的操作),交换网络10包括至少一个交换机。如图所示,本技术以交换网络10包括三个交换机为例,交换机101也可以称为汇聚交换机,交换机102和交换机103也可以称为接入交换机。接入交换机用于连接数据节点20,以及执行与其连接的数据节点20的分布式计算任务的操作;汇聚交换机则用于实现不同接入交换机所连接的数据节点的数据传输和分布式计算任务的操作。
54.可选地,图2所示的系统100中,交换网络10也可以仅设置一个交换机,用于实现数据节点201至206的数据传输和聚合处理。
55.值得说明的是,由于交换机中端口数量有限,随着系统中交换节点数量的增加,单个交换机可能无法满足系统组网要求,此时,则可以通过增加交换机数量的方式拓展系统中可接入数据节点的数量。因此,具体实施时,可以根据业务需求设置交换网络的结构,以及交换机的数量,本技术对交换网络10中交换机的数量和组网方式不做限定。为了便于描述,本技术的以下实施例中以图2所示的交换网络10为例进行说明。
56.图2中每个交换机均可以在传输数据节点的数据的过程中,实现数据聚合处理。进一步地,参见图3,图3为本技术实施例提供的一种交换机的结构示意图,如图所示,交换机中包括处理单元110、多个端口(例如,端口1201至端口1222)和交叉网络(crossbar)130。
57.其中,处理单元110,用于执行数据聚合操作。可选地,处理单元110,还用于指示端口执行数据聚合处理。进一步地,处理单元110又包括聚合结果缓存111、计算单元112、命令生成模块113和报文头管理模块114。聚合结果缓存111,用于存储同类数据的聚合结果,具体实施中,可以利用交换机中存储器或交换机中处理器的缓存实现聚合结果缓存111的功能。计算单元112,用于对各个端口发送的聚合结果执行聚合操作,以及管理操作表项(对于聚合操作,具体可以是聚合表项),包括生成、更新和删除操作表项,其中,操作表项用于记录每一类数据中待处理的数据与已处理的数据。命令生成单元113,则用于根据操作表项确定待聚合的同类数据,并生成操作命令(对于数据聚合操作,具体可以是聚合命令),并将聚合命令发送至聚合环路的首个端口,由该端口根据端口的输入缓存中存储的数据查找是否存在待聚合的同类数据,并执行聚合操作。报文头管理单元114,用于解析各个端口发送的报文头,以便将报文头中报文序号发送至命令生成单元114,由命令生成单元114根据报文序号和聚合表项生成聚合命令。此外,报文头管理单元114,还用于与交叉网络130相连,交叉网络130也可以称为交叉开关矩阵,用于实现处理单元110和各个端口之间报文头的传输。
58.交换机中多个端口分别用于连接数据节点,每个端口可以与一个数据节点相连,每个端口均包括计算单元和存储器,例如,端口1201包括计算单元12011、存储器12012。其中,计算单元,用于解析数据节点发送的报文获得报文头和静荷(payload)数据。可选地,计算单元,还用于根据处理单元110发送的聚合命令执行聚合操作。此外,每个端口的存储器按照存储数据类型的不同,又可以区分为输入缓存和输出缓存(图中未示出)。输入缓存,用于存储与该端口连接的数据节点所发送的报文,该报文中包括报文头和静荷(payload)数据,静荷数据中包括待聚合的同类数据。输出缓存,则用于在系统100完成待处理的所有同
一类数据的聚合操作后,接收并存储处理单元110发送的所有同一类数据的聚合结果,以便向与该端口连接的数据节点发送所有同一类数据的聚合结果。
59.值得说明的是,交换机中端口的数量依据厂商所生产的产品的不同有所差异,本技术对交换机所包括的端口数量不做限定。
60.图3中还示出了两种数据传输环路:聚合环路和分发环路,为了便于描述,也可以将聚合环路称为第一环路,将分发环路称为第二环路。
61.其中,聚合环路,是与参与分布式计算任务的数据节点连接的端口的集合,包括按照预设规则排序的至少两个端口,聚合环路中端口的排序用于指示上述至少两个端口接收或执行聚合命令的顺序。处理单元110生成的聚合命令可以依次从聚合环路的首个端口传输至最后一个端口,每个端口可以根据聚合命令和该端口中是否存储有待聚合的同类数据执行相应的聚合操作,并将聚合结果和聚合命令发送至该环路中与该端口相邻的下一个端口,
……
,依此类推,直到聚合环路中最后一个端口完成聚合命令的处理,将该聚合命令的聚合结果发送至处理单元,进而在该聚合环路中完成一个聚合命令的处理过程。如图3所示,聚合环路包括:处理单元110-端口1201-端口1202
‑…‑
端口1211-端口1212
‑…‑
端口1221-端口1222-处理单元110,形成一个闭合的环路,聚合命令可以分别由聚合环路各个端口分别执行,并由聚合环路中最后一个端口将最终结果数据传输至处理单元110。其中,与处理单元110连接的端口1201也可以称为聚合环路的首个端口,用于接收处理单元110发送的聚合命令。聚合命令会依次由端口1201、端口1202、端口1211、端口1212、

、端口1221和端口1222处理,并有端口1222将最终结果传输至处理单元110。其中,端口1202、端口1211、端口1212、端口1221也可以称为聚合环路的链路端口,每个端口可以接收在聚合环路中与其相邻的在前的端口发送的聚合命令以及与其相邻的在前的端口根据该聚合命令的聚合结果,并基于接收的聚合命令和与其相邻的在前的端口根据该聚合命令的聚合结果执行聚合操作。例如,端口1202可以接收端口1201发送的聚合命令和端口1201对聚合命令的聚合结果,当端口1201中不包括待聚合的同类数据时,端口1201直接将聚合命令发送至端口1202,此时,也可以理解为端口1201对聚合命令的聚合结果为空或无;当聚合端口1201中包括待聚合的同类数据时,端口1201除了将聚合命令发送至端口1202外,还会将端口1201执行操作明的聚合结果发送至端口1202,
……
,依此类推,在聚合环路中,每个端口依次接收聚合命令,并根据该聚合命令执行聚合操作,并将聚合命令和该端口根据聚合命令执行的聚合结果发送至聚合环路中与其相邻的在后的端口。最后由聚合环路中顺序最后的端口(也可以称为尾端口)将聚合命令的最终聚合结果传输至处理单元110。例如,端口1222为聚合环路中顺序最后的端口,端口1222将最终聚合结果传输至处理单元110,进而由处理单元110判断是否完成所有同类数据的聚合处理。
62.可选地,交换机中可以包括至少一个聚合环路,每个聚合环路包括按照预设规则排序的至少两个端口。
63.分发环路,是与参与分布式计算任务的数据节点连接的端口的集合,包括按照预设规则排序的至少两个端口,端口的排序用于指示与参与分布式计算任务的数据节点连接的端口接收所有同类数据的聚合结果的顺序,进而使得与上述端口连接的数据节点可以获知所有同类数据的聚合结果,进而完成分布式计算任务的其他操作。例如,如图3所示,分发环路包括处理单元110-端口1201-端口1202
‑…‑
端口1211,则处理单元110可以通过上述分
发环路将所有同类数据的聚合结果发送至分发环路中各个端口。
64.具体地,与聚合环路类似,中央单元110也可以将所有同类数据的聚合结果发送至分发环路的首个端口(例如,端口1201),再由首个端口将所有同类数据的聚合结果发送至与首个端口相邻的在后的端口(例如,端口1202),
……
,依此类推,分发环路中每个端口均可以获得与其相邻的在前的端口发送的所有同类数据的聚合结果。此外,每个端口在接收到所有同类数据的聚合结果后,可以将所有同类数据的聚合结果存储在端口的存储器中,具体可以存储在存储器的输出缓存中。
65.可选地,分发环路中最后一个端口在接收到所有同类数据的聚合结果后,还可以向中央单元发送通知消息,该通知消息用于指示分发环路中端口获取所有同类数据的聚合结果的情况。
66.可选地,交换机中包括至少一个分发环路,每个分发环路中分别包括按照预设规则排序的至少两个端口。
67.可选地,聚合环路和分发环路可以是相同的环路,也就是说,聚合环路即用于数据聚合过程中传输聚合命令和端口的聚合结果,还用于向参与分布式计算的数据节点相连的端口发送所有第一类数据的聚合结果。
68.可选地,聚合环路和分发环路也可以是不同的环路。
69.作为一种可能的实施例,聚合环路和分发环路中相邻端口,以及端口和处理单元的连接方式可以通过印刷电路板(printed circuit board,pcb)中物理连线(例如,导电线路)连接。
70.值得说明的是,聚合环路和分发环路分别包括的端口数量可以根据业务需求进行配置,数据传输路径延聚合环路或分发环路中所包括的端口依次逐个进行传输。
71.下面结合图4详细介绍申请提供的数据处理的方法,如图所示,该方法以分布式计算任务为数据聚合的处理过程为例进行说明,此外,为了便于描述,将待聚合的数据称为第一类数据,以第一端口、第二端口和第三端口分别为与执行分布式计算任务的数据节点连接的端口,且第一端口、第二端口和第三端口构成聚合环路,第一端口为聚合环路的首个端口,第三端口为聚合环路的最后一个端口为例进行说明。该方法具体包括:
72.s301、处理单元接收第一端口发送的第一报文头。
73.s302、处理单元接收第二端口发送的第二报文头。
74.s303、处理单元接收第三端口发送的第三报文头。
75.在分布式计算任务中,待聚合的同类数据具有关联的报文列号,每个数据可以利用一个报文由数据节点发送至交换机。每个报文包括报文头和静荷数据。具体地,端口在解析报文获得报文头后,可以通过交叉网络向处理单元发送报文头,每个报文头包括报文序号,报文序号用于指示与该端口连接的数据节点发送的报文的序号,每个报文中携带至少一个待聚合的数据。可选地,报文头中还包括数据类型,数据类型用于指示待处理的数据的类型。具体实施中,报文头的生成规则可以由数据节点确定后通知交换机,也可以由交换机确定后通知数据节点,本技术对此不做限定。
76.示例地,可以在报文序号的指定字段设置固定标识位,如在表1中第一字段为序号、字段2用于指示数据类别,当端口接收报文的报文序号中第二字段为1时,则表示该报文序号关联的报文包括数据类别为1的第一类数据,数据处理过程中可以针对数据类型为1的
数据执行聚合操作。
77.可选地,报文头中还包括用于指示偏移位的第三字段。偏移位,用于指示同一个端口待聚合的同类数据的总数。例如,当接收报文序号为第三字段为3时,则表示该端口待聚合数据的总数为3个。
78.可选地,报文头中还可以包括用于指示端口标识的字段4。其中,端口标识,用于指示向处理单元发送报文头的端口的标识,该端口标识可以利用数字和/或字母表示。可选地,处理单元也可以在接收端口发送的报文头时,分别记录发送报文头的端口的标识。
79.表1为一种报文头的示例
80.字段1字段2字段3字段4序号数据类别偏移位端口标识
81.s304(可选地)、处理单元分别校验各个报文头中报文序号的可靠性。
82.处理单元接收到与端口发送的报文头后,可以针对各个报文头中所包括的报文序号进行可靠性校验,其中,可靠性校验的方式可以采用以下方式中任意一种:
83.方式一、处理单元可以根据预设规则校验报文序号的可靠性。
84.数据节点和处理单元可以预先约定报文序号的生成规则,也可以称为预设规则,每个报文序号为全局唯一标识。可选地,每个报文携带一个第一类数据,也就是说,报文序号可以唯一标识一个第一类数据。处理单元可以根据该预设规则校验每个报文序号的合法性。具体地,处理单元可以预先存储包括预设报文序号表,该预设报文序号表用于记录按照预设规则生成的所有报文序列号的集合,处理单元可以在预设报文序号表中查询是否存在各个报文序号,当预设报文序号表中存在待查询的报文序号时,则认为该报文序号可靠性校验的结果为通过;否则,则认为该报文序号可靠性校验的结果为不通过。
85.方式二、处理单元可以按照预设规则计算报文序号的合法性。
86.报文序号可以是按照预设规则生成的随机数或标识,用于全局唯一标识一个报文的序号。例如,当报文序号是利用哈希(hash)算法生成的随机数并利用加密算法加密获得时,处理单元可以解密该算法,依据哈希算法确定解密后的报文序号,并确定该解密后的报文序号是否在预先约定的报文序号范围内,如果在预先约定的报文序号范围内,则认为该报文序列号可靠性校验结果为通过;如果不在预先约定的报文序号范围内,则认为该报文序号1可靠性校验结果为不通过。可选地,报文序号也可以利用除哈希算法以外的其他自定义算法或通用算法生成,本技术对此不做限定。
87.通过对报文序号的可靠性验证,可以在执行聚合操作前确定报文头的合法性,进而避免聚合非一类数据所导致的数据错误问题,提升分布式计算任务的准确性。
88.s305、处理单元根据各个报文序号生成聚合表项。
89.处理单元可以根据接收的报文头中报文序号生成聚合表项,聚合表项记录每一类数据中待处理的数据与已处理的数据,也就是说,在数据聚合处理中,该聚合表项用于指示第一类数据的聚合情况,包括报文序号和每个报文序号的聚合状态,其中,聚合状态用于指示每个报文序号关联的第一类数据的聚合状态,聚合状态包括“未聚合”、“已聚合”、以及“未聚合,且未收到报文头”中任意一种。可选地,聚合表项也可以包括报文序号关联的端口标识。可选地,聚合表项还可以包括报文序号关联的数据类别和偏移位。
90.示例地,表2为本技术实施例提供的一种处理单元接收报文头的汇总结果,如表所
示,处理单元由接收各个端口的报文头可知,端口标识为1的端口待聚合的数据类型为1的数据共3个,已接收报文序号为1和2的报文;端口标识为2的端口待聚合的数据类型为1的数据共4个,已接收报文序号为1和3的报文;端口标识为3的端口待聚合的数据类型为1的数据共2个,已接收报文序号为1和2的报文。
91.表2一种处理单元接收报文头的汇总结果
[0092][0093]
处理单元可以根据表2中报文头的偏移位确定所有待聚合的第一类数据的报文序号,以及每个报文序号对应的第一类数据的聚合状态,进而根据上述确定结果生成指示第一类数据聚合情况的聚合表项。示例地,根据表2可以获知:端口标识为1的端口连接的数据节点共生成3个数据类别为1的报文序号,处理单元已接收端口标识为1的端口发送的报文序号为1和2的报文头,处理单元未获得报文序号为3的报文头;端口标识为2端口连接的数据节点共生成4个数据类别为1的报文序号,处理单元已接收端口标识为2的端口发送的报文序号为1和3的报文头,处理单元未获得报文序号为2和4的报文头;端口标识为3的端口连接的数据节点共生成2个数据类别为1的报文序号,处理单元已获得报文序号为1和2的报文头。此时,如表3所示,处理单元可以根据上述情况先确定所有待聚合的第一类数据的报文序号和每个报文序号关联的端口标识,并进一步标识每个报文序号的聚合状态。例如,端口标识为1,报文序号为1的聚合状态未“未聚合”,端口标识为1,报文序号为1的聚合状态未“未聚合,且未收到报文头”。
[0094]
表3一种聚合表项的示例
[0095]
[0096]
可选地,除了利用如表3所示的文字形式标识聚合状态以外,还可以利用数字或字母或数据和字母的组合等任意形式标识聚合状态。
[0097]
处理单元通过生成如表3所示的聚合表项可以获知待聚合的第一类数据的聚合状态,进一步地,处理单元可以根据聚合表项生成聚合命令,该聚合命令用于指示端口根据聚合命令执行数据聚合操作。
[0098]
s306、处理单元根据聚合表项确定待聚合的第一类数据的报文序号,并生成聚合命令。
[0099]
处理单元在确定待聚合的所有第一类数据的报文序号和每个报文序号的聚合状态后,可以基于未聚合的数据所关联的报文序号和端口标识生成聚合命令,该聚合命令中包括至少一个待聚合的第一类数据的报文序号。
[0100]
具体地,处理单元可以按照筛选规则生成聚合命令,筛选规则用于筛选聚合命令中所包括的待聚合的第一类数据的报文序号,具体包括以下方式中任意一种:
[0101]
方式一、按照轮询的方式,根据报文序号的大小确定至少一个待聚合的第一类数据的报文序号。
[0102]
具体地,可以按照轮询的方式,根据报文序列号的大小,在所有待聚合的第一类数据的报文序号中选择一个或多个待聚合的第一类数据的报文序号。
[0103]
方式二、按照优先级方式,确定至少一个待聚合的第一类数据的报文序号。
[0104]
待聚合的第一类数据也可以带有优先级标识,该优先级标识被携带在报文中,该优先级用于标识与之关联的第一类数据的优先级,例如,图1中某个数据节点所生成的第一类数据为聚合数据中重要数据,则该第一数据的优先级则可以标识为高,相应地,该数据节点发送的报文中也携带指示优先级的信息。处理单元可以根据待聚合的第一类数据的优先级,在所有待聚合的第一类数据的报文序号中选择一个或多个待聚合数据。
[0105]
方式三、按照已接收的报文头情况选择至少一个待聚合的第一类数据的报文序号。
[0106]
除了上述两种方式中在所有待聚合的第一类数据的报文序号中筛选报文序号外,处理单元还可以先确定已接收的报文序号,然后在已接收的报文序号中使用方式一或方式二的方法选择至少一个第一数据的报文序号。
[0107]
进一步地,处理单元可以根据聚合表项仅生产一个聚合命令,该聚合命令中包括上述任意一种方式中筛选的所有待聚合的第一类数据的报文序号;也可以生成多个聚合命令,每个聚合命令包括一个待聚合的第一类数据的报文序号;还可以生成多个聚合命令,每个聚合命令包括部分待聚合的第一类数据的报文序号。为了便于描述,以处理单元仅生成一个聚合命令,该命令包括上述任意一种方式中筛选的所有待聚合的第一类数据的报文序号为例进行描述。
[0108]
可选地,聚合命令还包括待聚合的第一类数据的报文序号关联的端口标识。
[0109]
s307、处理单元向第一端口发送聚合命令。
[0110]
处理单元可以利用聚合环路发送聚合命令,若第一端口为聚合环路的首个端口,则处理单元向第一端口发送该聚合命令。也就是说,处理单元直接将聚合命令发送给聚合环路的首个端口,首个端口完成聚合命令的处理后,再向聚合环路中与首个端口相邻的在后的端口发送该聚合命令,进而由该端口根据首个端口的聚合结果和聚合命令完成本端口
的聚合处理,顺序在前的端口根据聚合命令执行聚合操作之后,将聚合操作的结果数据与该聚合命令转发至相邻的在后的端口,直至聚合环路中顺序最后的端口将该聚合命令的全部的结果数据发送至处理单元,具体过程参见步骤s308至步骤s310。
[0111]
s308、当第一端口包括待聚合的第一类数据的报文序号时,第一端口执行聚合操作,并向第二端口发送聚合命令和第一端口的聚合结果。
[0112]
第一端口在接收到与之连接的数据节点的报文后,会解析该报文获得报文头和静荷数据,并将报文头通过交叉网络发送给处理单元,并将报文头和静荷数据存储至第一端口的存储器。当第一端口接收到聚合命令时,则会根据聚合命令中待聚合的第一类数据的报文序号执行聚合命令的处理。具体地,第一端口可以先确定第一端口的存储器是否包括待聚合的第一类数据的报文序号;然后,根据报文序号确定与该报文序号关联的静荷数据;再根据静荷数据执行聚合操作。
[0113]
可选地,第一端口也可以先根据聚合命令中报文序号关联的端口标识确定是否包括第一端口的标识;然后,确定第一端口的存储器是否包括待聚合的第一类数据的报文序号;再根据报文序号确定该报文序号关联的静荷数据;最后,根据静荷数据执行聚合操作。为了便于描述,也可以将聚合环路中每个端口根据聚合命令执行的操作称为分布式计算任务的第三操作,相应地,每个端口执行第三操作获得结果数据,该结果数据也可以称为第三操作的结果数据。
[0114]
第一端口在执行完聚合命令后,会将聚合命令和第一端口的聚合结果发送给聚合环路中与第一端口相邻的端口(例如,第二端口),由第二端口继续根据聚合命令和第一端口的聚合结果执行聚合操作。
[0115]
示例地,以参考表3所示的聚合表项生成的聚合命令包括端口标识为1的端口中报文序号为1和2的报文序号,端口标识为2的端口中报文序号为1和3的报文序号,以及端口标识为3的端口中报文序号为1和2的报文序号为例,当第一端口接收到聚合命令时,则会聚合报文序号为1和2所关联的静荷数据,获得聚合结果,该聚合结果也可以称为第一端口根据聚合命令获得的聚合结果,或者称为第一端口的聚合结果,或者称为第一端口执行聚合命令的结果数据,或者称为第一端口执行第三操作的结果数据。
[0116]
可选地,当第二端口中不包括聚合命令中待聚合的第一类数据的报文序号时,第一端口可以直接向第二端口发送聚合命令,此时,也可以认为第一端口的聚合结果为零或空。
[0117]
s309、当第二端口包括待聚合的第一类数据的报文序号时,第二端口执行聚合操作,并向第三端口发送聚合命令和第二端口的聚合结果。
[0118]
与步骤s308类似,第二端口在接收到聚合命令后,也可以根据聚合命令中待聚合的第一类数据的报文序号在第二端口的存储器中查找与之匹配的静荷数据。具体地,第二端口可以先确定第二端口的存储器是否包括待聚合的第一类数据的报文序号;然后,再根据报文序号确定待聚合的第一数据,也就是该报文序号关联的静荷数据;根据静荷数据执行聚合操作。其中,第二端口执行聚合操作时,需要先判断第一端口是否发送第一端口根据聚合命令生成的聚合结果,如果是,第二端口则需要根据第一端口的聚合结果和第二端口的存储器中存储的待聚合的第一类数据执行聚合操作,获得第二端口的聚合结果,也即,当第二端口需要在第一端口的聚合结果基础上执行聚合操作。
[0119]
示例地,仍以参考表3所示的聚合表项生成的聚合命令包括端口标识为1的端口中报文序号为1和2的报文序号,端口标识为2的端口中报文序号为1和3的报文序号,以及端口标识为3的端口中报文序号为1和2的报文序号为例,当第一端口根据聚合命令将报文序号1和2关联的第一类数据聚合获得第一端口的聚合结果时,向第二端口发送上述聚合结果和聚合命令,相应地,第二端口会根据上述聚合结果和聚合命令执行上述聚合结果和报文序号为1和3关联的第一类数据聚合获得第二端口的聚合结果,此时,第二端口的聚合结果包括端口1中报文序号为1和2关联的第一类数据,以及端口2中报文序号为1和3关联的第一类数据的聚合结果。为了便于描述,也可以将第二端口根据聚合命令获得的聚合结果称为第二端口的聚合结果,或者第二端口执行聚合命令获得的聚合结果,第二端口执行第三操作获得的结果数据。
[0120]
可选地,当第二端口中不包括聚合命令待聚合的第一类数据的报文序号时,第二端口可以直接向第三端口发送聚合命令和第一端口的聚合结果,此时,也可以认为第二端口的聚合结果为零或空。
[0121]
值得说明的是,如果第一端口中也不包括聚合命令待聚合的第一类数据的报文序号,则第二端口可以直接向第三端口聚合命令,也就是说,在此情况下,第一端口和第二端口均未包括聚合命令待聚合的第一类数据的报文序号,第一端口的聚合结果和第二端口的聚合结果均为零或空。
[0122]
s310、当第三端口包括待聚合的第一类数据的报文序列号时,执行聚合操作,并向处理单元发送第三端口的聚合结果。
[0123]
第三端口为聚合环路中最后一个端口,也就是说,第三端口是聚合环路中顺序最后的端口。示例地,如图3所示的端口1222。与上述步骤s309类似,第三端口也会根据第三端口的存储器中是否存在聚合命令中指示的待聚合的第一类数据的报文序号,以及聚合环路中与第三端口相邻的在先的端口的聚合结果执行聚合操作,并将其执行聚合操作的结果数据发送给处理单元。
[0124]
值得说明的是,第三端口是根据第三端口中存储的待聚合的第一类数据和第二环路的聚合结果执行聚合操作,获得聚合结果,该聚合结果可以称为第三端口的聚合结果,或者第二端口执行聚合命令获得的聚合结果,或第三端口执行聚合命令的结果数据。
[0125]
可选地,聚合环路中每个端口并不存储端口根据聚合命令执行聚合部分第一类数据的聚合结果,当完成聚合命令的处理后,即将聚合命令的聚合结果发送给聚合环路中与该端口相邻的在后端口。
[0126]
s311、当处理单元判断未完成所有第一类数据的聚合操作时,处理单元根据聚合表项生成新的聚合命令,重复执行步骤s306至s310的操作,并根据至少两个聚合命令的聚合结果确定所有第一类数据的聚合结果。
[0127]
进一步地,当处理单元获取步骤s310中聚合环路中最后一个端口的聚合结果时,可以更新表3中报文序号的聚合状态,并根据更新后的结果判断是否已完成所有第一类数据的聚合操作,如果未完成所有第一类数据的聚合操作,则可以参考上述步骤s306至步骤s310再次生成新的聚合命令,并由聚合环路中各个端口根据新的聚合命令执行聚合操作,再由第三端口向处理单元发送新的聚合命令的聚合结果,进而由处理单元根据多个聚合命令的聚合结果获得所有第一类数据的聚合结果。也即当存在多个聚合命令获得的聚合结果
时,处理单元可以对多个聚合命令的聚合结果再次执行聚合操作,进而获得所有第一类数据的聚合结果。
[0128]
上述步骤s301至步骤s311也可以称为数据聚合过程,在完成所有第一类数据的聚合操作后,处理单元可以通过数据分发过程将所有数据的聚合结果通过分发环路发送给与参与分布式计算任务的数据节点相连的端口,进而通过上述端口将所有第一类数据发送至参与分布式计算任务的数据节点,使得参与分布式计算任务的数据节点继续完成分布式计算的其他操作。具体过程参见步骤s312至步骤s313的描述。
[0129]
s312、当已完成所有第一类数据的聚合时,处理单元通过分发环路向第一端口发送所有第一类数据的聚合结果。
[0130]
s313、第一端口向第二端口发送所有第一类数据的聚合结果。
[0131]
s314、第二端口向第三端口发送所有第一类数据的聚合结果。
[0132]
分发环路是交换机中用于发送所有第一类数据的聚合结果的路径,是按照预设规则排序的至少两个端口构成的数据传输环路。
[0133]
示例地,图3所示的交换机包括两个分发环路,分发环路1为处理单元110-端口1201-端口1202
…‑
端口1211,分发环路2为处理单元110-端口1222-端口1221
‑…‑
端口1212。当处理单元确定已完成所有第一类数据的聚合时,可以通过分发环路将所有第一类数据的结果分发至与参与分布式计算的数据节点相连的端口,进而传输至参与分布式计算的数据节点。
[0134]
s315、(可选地)处理单元清理聚合命令表项和聚合结果缓存。
[0135]
在处理单元完成包括所有第一类数据的聚合结果分发后,处理单元可以清理聚合结果缓存、删除聚合命令表项,进而释放处理单元的存储空间。
[0136]
通过上述数据聚合过程和聚合数据分发过程的描述可知,本技术提供的聚合方法能够在数据传输过程中由交换机直接执行数据聚合操作,避免了传统技术中专用聚合节点执行聚合操作所带来的占用网络资源、传输速率低、处理时延长等问题,提升了聚合处理的效率。此外,交换机中处理单元和各个端口可以采用分布式方式分别对待聚合的数据执行聚合操作,避免由单一主体执行聚合操作所引起的性能瓶颈问题,进一步降低了聚合处理的时延。而且,由于避免利用独立设备执行聚合操作,减少了系统中节点数量,降低了系统成本。另一方面,通过聚合环路和分发环路分别执行聚合处理和分发处理,避免占用其他类型数据的传输的带宽,可以大幅提升分布式计算的传输带宽。此外,由于在数据处理过程中,第一类数据的聚合结果仅在处理单元的聚合结果缓存中,端口在数据处理过程中无需缓存部分一类数据的聚合结果,仅在完成所有同类数据的聚合操作后才需要存储所有同类数据的聚合结果,大幅降低了端口中缓存数据的容量需求。
[0137]
作为一种可能的实施例,图4所示的数据处理的方法除了利用聚合环路和分发环路传输数据以外,还可以直接利用交叉网络130实现处理单元和各个端口的数据传输,此时,交叉网络130不仅用于实现处理单元和各个端口间传输报文头,还用于传输处理单元生成的聚合命令,以及各个端口执行聚合命令的处理结果。上述实现方式也能实现在数据传输中由交换机实现数据聚合的过程,进而避免传统技术中由单一聚合节点执行聚合操作所带来耗时长、效率低的问题。
[0138]
作为一种可能的实施例,除了图4所示的方法外,本技术所提供的数据处理方法
中,还可以仅由交换机的处理单元执行分布式计算任务,也即,各个端口在获取到数据节点发送的携带待聚合的第一类数据和报文头的报文后,将报文发送至处理单元,由处理单元解析报文,获取报文头中报文序号,并根据报文序号执行聚合操作。可选地,各个端口也可以完成报文的解析过程,将报文头和静荷数据分别发送至处理单元,进而由处理单元执行聚合操作。上述过程也可以实现在数据传输过程中,由交换机执行聚合操作的目的,提升数据处理的效率。
[0139]
通过上述内容描述,本技术提供的交换机500可以和数据节点共同完成分布式计算任务,使得交换机在数据传输过程中即完成分布式计算任务的操作,提升了数据处理的效率和速度。而且,通过聚合环路和分发环路分别执行聚合处理和分发处理,避免占用其他类型数据的传输的带宽,可以大幅提升分布式计算的传输带宽。
[0140]
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术所必须的。
[0141]
本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本技术的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本技术所必须的。
[0142]
上文中结合图1至图4,详细描述了根据本技术所提供的数据处理的方法,下面将结合图5至图6,描述根据本技术所提供的数据处理的交换机。
[0143]
图5为本技术提供的一种交换机500的结构示意图,如图所示,交换机500用于连接至少两个数据节点,所述至少两个数据节点用于分别执行分布式计算任务的第一操作,交换机500包括第一处理单元501,其中
[0144]
第一处理单元501,用于接收所述至少两个数据节点发送的所述第一操作的结果数据;根据接收的所述第一操作的结果数据执行所述分布式计算任务的第二操作,获得所述第二操作的结果数据;分发所述第二操作的结果数据。
[0145]
可选地,所示交换机500还包括至少两个端口,每个端口连接一个数据节点,每个端口包括接收单元502和发送单元503,其中,
[0146]
接收单元502,用于接收所连接的数据节点发送的所述第一操作的结果数据;
[0147]
发送单元503,用于将所述第一操作的结果数据转发至第一处理单元501。
[0148]
可选地,每个端口还包括第二处理单元504,用于在发送单元503将所述第一操作的结果数据转发至第一处理单元501之前,对所述第一操作的结果数据执行所述分布式计算任务的第三操作。
[0149]
可选地,所述分布式计算任务包括分布式人工智能计算任务或分布式高性能计算任务或分布式图形计算任务。
[0150]
可选地,所述分布式计算任务的第二操作或第三操作包括对同类数据进行聚合的操作。
[0151]
可选地,所述交换机为接入交换机或汇聚交换机。
[0152]
可选地,第一处理单元501,还用于向所述至少两个端口发送操作命令,所述操作命令用于指示所述至少两个端口的第二处理器504分别执行所述第三操作。
[0153]
可选地,所述至少两个端口按照预设规则排序组成第一环路,所述第一环路的顺序指示所述至少两个端口接收或执行所述操作命令的顺序。
[0154]
可选地,所述第一环路中顺序在前的端口根据所述操作命令执行所述第三操作之后,将所述第三操作的结果数据与所述操作命令转发至相邻的在后的端口,直至所述第一环路中顺序最后的端口将全部的第三操作的结果数据发送至第一处理单元501。
[0155]
可选地,第一处理单元501,还用于在发送所述操作命令之前,接收所述至少两个端口分别发送的报文头,每个报文头包括数据类别和报文序号;根据所述报文头建立操作表项,所述操作表项记录每一类数据中待处理的数据与已处理的数据;根据所述操作表项发送所述操作命令。
[0156]
可选地,报文头还包括端口标识,所述操作表项还用于记录每一类数据中每个待处理数据对应的端口标识。
[0157]
可选地,所述交换机中包括至少一个所述第一环路。
[0158]
可选地,所述交换机还用于建立第二环路,所述第一处理单元501,还用于通过所述第二环路分发所述第二操作的结果数据。
[0159]
可选地,所述交换机中包括至少一个所述第二环路。
[0160]
应理解的是,本技术实施例的第一处理单元501和第二处理单元504分别可以通过专用集成电路(application-specific integrated circuit,asic)实现,或可编程逻辑器件(programmable logic device,pld)实现,上述pld可以是复杂程序逻辑器件(complex programmable logical device,cpld),现场可编程门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。也可以通过软件实现图4所示的数据处理方法时,第一处理单元501、第二处理单元504及其各个模块也可以为软件模块。
[0161]
根据本技术实施例的交换机500可对应于执行本技术实施例中描述的方法,并且交换机500中的各个单元的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
[0162]
通过上述内容描述,本技术提供的交换机500可以和数据节点共同完成分布式计算任务,使得交换机在数据传输过程中即完成分布式计算任务的操作,提升了数据处理的效率和速度。而且,通过聚合环路和分发环路分别执行聚合处理和分发处理,避免占用其他类型数据的传输的带宽,可以大幅提升分布式计算的传输带宽。
[0163]
图6为本技术提供的另一种交换机600的结构示意图,如图所示,交换机600中包括第一处理器601和至少两个端口602,其中,每个端口602分别用于与参与分布式计算任务的数据节点通过网络603相连,其中,
[0164]
第一处理器601,用于分别接收所述至少两个数据节点发送的所述第一操作的结果数据,根据接收的所述第一操作的结果数据执行所述分布式计算任务的第二操作,获得所述第二操作的结果数据,并分发所述第二操作的结果数据。
[0165]
应理解,在本技术实施例中,该第一处理器601可以是cpu,该处理器601还可以是其他通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
[0166]
网络603,可以是总线,该总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。
[0167]
可选地,第一处理器601可以用于实现如图2所示的处理单元110中计算单元112、命令生成单元13、报文头管理单元114的功能,为了简洁,在此不再赘述。
[0168]
可选地,第一处理器601中还包括存储器(图中未示出),存储器用于向第一处理器601提供命令和数据,使得第一处理器可以执行如图4所示方法的操作步骤。该存储器可以包括只读存储器和随机存取存储器,存储器还可以包括非易失性随机存取存储器。
[0169]
可选地,第一处理器601外部也可以包括存储器,以向第一处理器601提供命令和数据,使得第一处理器可以执行如图4所示方法的操作步骤。
[0170]
可选地,每个端口602包括第二处理器6021和存储器6022,其中,第二处理器6021也可以是cpu,该处理器6021还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
[0171]
每个端口602可以用于实现如图4所示的方法中第一端口或第二端口或第三端口执行的方法的操作步骤,为了简洁,在此不再赘述。
[0172]
应理解,根据本技术实施例的交换机600可对应于本技术实施例中的交换机500,并可以对应于执行根据本技术实施例中图4所示的方法中的相应主体,并且交换机600中的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
[0173]
通过上述内容描述,本技术提供的交换机600可以和数据节点共同完成分布式计算任务,使得交换机在数据传输过程中即完成分布式计算任务的操作,提升了数据处理的效率和速度。而且,通过聚合环路和分发环路分别执行聚合处理和分发处理,避免占用其他类型数据的传输的带宽,可以大幅提升分布式计算的传输带宽。
[0174]
本技术还提供一种数据处理的系统,该系统包括交换网络和与交换网络连接的至少两个分别执行分布式计算任务的第一操作的数据节点,交换网络包括至少一个交换机,每个交换机包括如图6所示的第一处理器和至少两个端口,并用于实现如图4所示方法中相应执行主体的功能,为了简洁,在此不再赘述。该系统可以实现分布式计算任务,在数据传输过程中,由交换机执行分布式计算任务的操作,进而提升数据处理的效率、降低数据处理的时延。
[0175]
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机命令。在计算机上加载或执行所述计算机程序命令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机命令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机命令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介
质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,ssd)。
[0176]
以上所述,仅为本技术的具体实施方式。熟悉本技术领域的技术人员根据本技术提供的具体实施方式,可想到变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献