一种计算系统以及数据传输方法与流程
未命名
10-10
阅读:138
评论:0
1.本技术实施例涉及计算机领域,尤其涉及一种计算系统以及数据传输方法。
背景技术:
2.随着高性能计算机群(high performance computing,hpc)技术的发展,信息传递接口(message passing interface)作为一种跨语言的通信协议,在hpc的通信中所占的比重越来越高。其中,集合通信是mpi通信的组成部分,优化集合通信时延是hpc通信优化的重要方向。
3.集合通信分为节点间通信和节点内通信,节点内通信和节点间通信串行执行。在目前的集合通信过程中,在两个节点之间进行通信时,首先需要由发送节点内的一个处理器核对发送节点内的所有处理器核的数据全部进行聚合后,再通过网卡发送至接收节点。
4.由于节点内处理器核数量增加,使得集合通信中节点内的聚合操作的耗时也随之增加,另外,节点内的聚合操作也增加了处理器核的负载。
技术实现要素:
5.本技术提供了一种计算系统以及数据传输方法,用于降低计算系统的通信时延。
6.本技术第一方面提供了一种计算系统,该计算系统包括第一节点和第二节点,第一节点连接第一网卡,第一节点通过第一网卡连接至第二节点。第一节点包括多个第一处理器核,该第一处理器核为每个处理器核组中负责与网卡通信的处理器核,该第一处理器核也在本技术中可以称作领导(leader)处理器核或者根处理器核。每个第一处理器核用于执行计算任务,根据计算任务生成第一数据,并将第一数据发送至第一网卡,第一数据包括核组内第一处理器核进行集合通信产生的数据,集合通信例如all-reduce、all-to-all和all-gather等。第一网卡用于识别多个第一处理器和发送的数据,以及对多个第一处理器核发送的多个第一数据执行聚合操作,并将执行聚合操作后生成的数据通过第一网卡发送给第二节点。
7.本技术中提供的计算系统中第一网卡能够实现对处理器核发送的数据执行聚合操作,相较于第一节点内的多个第一处理器核发送的数据先由其中一个第一处理器核对数据执行聚合操作后再发送至第一网卡,由第一网卡执行聚合操作减少了第一节点的内部多个第一处理器核之间的通信,从而减少了节点内聚合操作的耗时,且减少了节点内处理器核的负载。
8.一种可能的实施方式中,第一节点包括多个核组,第一核组为多个核组中的任意一个核组,第一核组包括一个第一处理器核及至少一个第二处理器核,第一核组中的第一处理器核所执行的计算任务包括将第一核组中的至少一个第二处理器核发送的数据与第一处理器核中的数据聚合为第一数据。
9.本技术中第一节点的多个第一处理器核对同核组内的其他处理器核发送的数据进行聚合操作,避免了不同核组之间的第一处理器核的通信,从而减少了第一节点内的多
个第一处理器核进行跨核组之间的通信时延,从而进一步降低了计算系统的通信时延。
10.一种可能的实施方式中,第一核组中的第一处理器核接收到同核组内其他处理器核发送的数据之后,与第一处理器核中的数据执行聚合操作得到第一数据,通过将第一数据打包为第一报文发送给第一网卡,第一报文包括指示第一网卡对第一数据进行聚合操作的标记。第一网卡用于对具有标记的第一报文中的第一数据进行聚合。具体的,第一网卡接收第一节点中多个处理器核发送的报文,第一网卡识别报文中标记,对具有标记的第一报文中的第一数据执行聚合操作。第一报文中的标记包括第一报文中报文头中的目标字段,目标字段例如“coll tag”字段。
11.本技术中第一网卡能够根据第一报文中的标记识别需要进行聚合操作的报文,对于具有标记的报文执行聚合操作,从而能够准确识别需要进行聚合操作的报文,从而提升了方案的可实现性。
12.一种可能的实施方式中,第一网卡还用于在第一网卡中设置多个第一处理器核。具体的,第一网卡预先设置第一节点中需要与第一网卡进行交互的多个第一处理器核,即设置leader处理器核。在第一网卡中设置多个第一处理器核的方式有多种,例如,计算系统在创建通信域时,在资源初始化流程中,第一节点基于多个第一处理器核与网卡进行一次all-reduce集合通信操作,第一网卡即可以收集到第一网卡对应的通信域的多个第一处理器核。
13.本技术中第一网卡能够预先设置第一节点中与第一网卡进行通信的多个第一处理器核,从而使得第一网卡在集合通信过程中能够识别第一处理器核,进一步提升了方案的可实现性。
14.一种可能的实施方式中,第一网卡还用于接收第二节点发送的第二报文,该第二节点为第一节点的外部节点,第二报文中包括指示第一网卡对第二报文进行广播的标记。第一网卡根据第二报文的标记及第一网卡中所设置的多个第一处理器核的标记将第二报文发送至多个第一处理器核。具体的,第一网卡根据多个第一处理器核的标记与第二报文的标记进行匹配,第一网卡对于具有第二报文的标记的第一处理器核执行广播操作。
15.本技术中第一网卡能够实现对第二节点发送的第二报文执行广播操作,相较于第一网卡将第二报文转发至第一节点,再由第一节点中第一处理器核将第二报文广播至不同核组的处理器核的方案,避免了第二报文在第一节点内跨核组广播,从而减少了对第二报文进行广播的时延,进一步减少计算系统的通信时延。
16.一种可能的实施方式中,第一核组中的第一处理器核用于将第二报文发送至第一核组中的至少一个第二处理器核中,即多个第一处理器核在各自的核组内广播第二报文。
17.本技术中第一节点中的多个第一处理器核在接收到第一网卡发送的第二报文之后,在第一处理核所在的核组内向其他处理器核分发第二报文,由于避免了第一处理器核跨核组分发第二报文,从提降低计算系统的通信时延。
18.一种可能的实施方式中,第一核组中所包括的第一处理器核和至少一个第二处理器核归属于一个中央处理单元cpu,或者归属于一个非统一内存访问numa单元。即第一节点中的处理器核按照硬件归属划分核组,归属于同一个cpu的处理器核可以为一个核组,或者归属于同一个numa单元的处理器核可以为一个核组。
19.本技术中第一节点的每个cpu中设置一个第一处理器核或者在每个numa中设置一
个第一处理器。第一处理器直接与第一网卡进行交互,从而减少了第一节点内数据跨cpu通信或者数据跨numa单元通信,进而降低了计算系统的通信时延。
20.本技术第二方面提供了一种数据传输方法,该方法可以由计算系统执行,也可以由计算系统的部件,例如计算系统中第一网卡或第一节点的处理器、芯片或芯片系统等执行,还可以由能实现全部或部分计算系统功能的逻辑模块或软件实现。第一方面提供的数据传输方法包括:第一网卡接收第一节点中多个第一处理器核中的每个处理器发送的第一数据,其中,多个第一处理器核为第一网卡预先设置的处理器核,负责与第一网卡通信。第一处理器核中的每个第一处理器核用于执行计算任务,根据计算任务生成第一数据,并将第一数据发送至第一网卡,第一数据包括核组内第一处理器核进行集合通信产生的数据,集合通信例如all-reduce、all-to-all和all-gather等。第一网卡对多个第一数据执行聚合操作。第一网卡向第二节点发送执行聚合操作后的数据。
21.本技术中第一网卡能够实现对第一节点的多个第一处理器核发送的数据执行聚合操作,相较于第一节点内的多个第一处理器核发送的数据先由其中一个第一处理器核对数据执行聚合操作后再发送至第一网卡,减少了第一节点的内部多个第一处理器核之间的通信时延,从而减少了计算系统的通信时延。
22.一种可能的实施方式中,第一网卡接收第一节点中多个第一处理器核中的每个处理器核发送的第一数据的过程中,第一网卡接收第一处理器核发送的包括第一数据的第一报文,第一报文包括指示第一网卡对第一数据进行聚合操作的标记。第一网卡对多个第一数据执行聚合操作的过程中,第一网卡对具有标记的第一报文中的第一数据进行聚合。
23.本技术实施例中第一网卡接收多个第一处理器核发送的包括第一数据的第一报文,并根据第一报文中的标记识别需要进行聚合操作的报文,对于具有标记的报文执行聚合操作,从而能够准确识别需要进行聚合操作的第一报文,提升了方案的可实现性。
24.一种可能的实施方式中,第一网卡接收第一节点中多个第一处理器核中的每个处理器核发送的第一数据之前,第一网卡设置多个第一处理器核。具体的,计算系统在创建通信域时,在资源初始化流程中,第一节点基于多个第一处理器核与网卡进行一次all-reduce集合通信操作,第一网卡就可以收集到第一网卡对应的通信域的多个第一处理器核。
25.本技术中第一网卡能够预先设置第一节点中与第一网卡进行通信的多个第一处理器核,从而使得第一网卡在集合通信过程中能够识别第一处理器核,进一步提升了方案的可实现性。
26.一种可能的实施方式中,第一网卡接收第二节点发送的第二报文,第二报文中包括指示第一网卡对第二报文进行广播的标记。第一网卡根据第二报文的标记及第一网卡中所设置的多个第一处理器核的标记将第二报文发送至多个第一处理器核。
27.一种可能的实施方式中,第一节点包括多个核组,核组包括第一处理器核和至少一个第二处理器核,其中第一核组为多个核组中的任意一个核组,第一核组中的第一处理器核接收第一核组中的至少一个第二处理器核发送的数据。第一核组中的第一处理器核将第一核组中的至少一个第二处理器核发送的数据与第一处理器核中的数据聚合为第一数据。
28.一种可能的实施方式中,第一网卡接收第一节点中多个第一处理器核中的每个处
理器核发送的第一数据,第一网卡接收第一核组中的第一处理器核发送的包括第一数据的第一报文。
29.一种可能的实施方式中,第一核组中的第一处理器核接收第一网卡发送的第二报文。第一核组中的第一处理器核将第二报文发送至第一核组中的至少一个第二处理器核中。
30.本技术第三发明提供了一种数据传输方法,该方法由网卡执行,所述方法包括第二方面所提供的任一方法中,由第一网卡执行的步骤。
31.本技术第四方面提供了一种网卡,包括收发单元和处理单元。所述收发单元和处理单元用于实现第三方面所提供任一方法中第一网卡执行的步骤。
32.本技术第五方面提供了一种计算设备,包括由第一处理器核执行的收发单元和聚合单元,由第二处理器核执行的发送单元。所述收发单元和聚合单元用于执行第二方面所提供的任一方法中的第一处理器核所执行的功能,所述发送单元用于执行第二方面所提供的任一方法中第二处理器核所执行的功能。
33.本技术第六方面提供了一种网卡,包括处理器,处理器与存储器耦合,处理器用于存储指令,当指令被处理器执行时,以使得网卡执行上述第三方面提供的任一方法。
34.本技术第七方面提供了一种计算设备,包括多个核组,第一核组为所述多个核组中的任意一个核组,所述第一核组包括一个第一处理器核及至少一个第二处理器核,所述第一核组中的第一处理器核所执行的计算任务包括将所述第一核组中的所述至少一个第二处理器核发送的数据与所述第一处理器核中的数据聚合为所述第一数据,每个核组中的第一处理器用于将所述第一数据发送至网卡。
35.本技术第八方面提供的了一种芯片,包括接口及处理单元,接口用于收发数据,处理单元用于执行上述第二方面以及第二方面任意一种可能的实施方式中第一网卡所执行的功能。
36.本技术第八方面提供了一种计算机可读存储介质,其上存储有指令,指令被执行时,以使得计算机执行上述第二方面或第二方面任意一种可能的实施方式中第一网卡所执行的方法,或者,以使得计算机执行上述第二方面或第二方面任意一种可能的实施方式中第一节点所执行的方法。
37.本技术第方面提供了一种计算机程序产品,计算机程序产品中包括指令,指令被执行时,以使得计算机实现上述第二方面或第二方面任意一种可能的实施方式中第一网卡所执行的方法,或者,以使得计算机实现上述第二方面或第二方面任意一种可能的实施方式中第一节点所执行的方法。
38.可以理解,上述提供的任一种数据传输方法、网卡、计算设备、芯片、计算机可读介质或计算机程序产品等所能达到的有益效果可参考对应的计算系统中的有益效果,此处不再赘述。
附图说明
39.图1为本技术实施例提供的一种通信系统架构示意图;
40.图2为本技术实施例提供的一种数据传输方法流程示意图;
41.图3a为本技术实施例提供的一种集合通信的示意图;
42.图3b为本技术实施例提供的一种集合通信的示意图;
43.图4为本技术实施例提供的一种报文格式的示意图;
44.图5为本技术实施例提供的一种网卡执行报文聚合操作的示意图;
45.图6为本技术实施例提供另一种数据传输方法的示意图;
46.图7为本技术实施例提供的一种网卡的结构示意图;
47.图8为本技术实施例提供的一种计算设备的结构示意图;
48.图9为本技术实施例提供的另一种网卡的结构示意图。
具体实施方式
49.本技术实施例提供了一种计算系统以及数据传输方法,用于降低计算系统的通信时延。
50.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
51.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
52.以下,对本技术中的部分用语进行解释说明,以便于本领域技术人员理解。
53.消息传递接口(message passing interface,mpi)是一种标准化的消息传递标准,可以在多种并行计算系统上运行。该标准定义了通信库的核心语法和语义,用户可以使用多种编程语言编写消息传递程序,编程语言例如c语言、c++语言和fortran语言。
54.集合通讯是mpi的一个重要通信部分,该集合通信模式下,通信域内所有进程均参与通信。集合通信的模型例如all-reduce、broadcast和all-to-all等。
55.下面结合附图介绍本技术实施例提供的计算系统以及数据传输方法。
56.请参阅图1,图1为本技术实施例提供的一种集合通信场景的系统架构示意图。如图1所示,本技术实施例提供的集合通信系统中包括多个计算设备和多个网卡和交换机103。多个计算设备包括第一节点101和第二节点104,多个网卡包括第一网卡102和第二网卡105。以第一节点101为例,第一节点101中包括多个处理器核,多个处理器核可以按照硬件归属分为多个处理器核组。例如,核组的划分可以按照中央处理器单元cpu划分,即归属于同一个cpu中的处理器核划分为一个处理器核组。核组的划分也可以按照非统一内存访问numa单元划分,属于同一个numa单元的处理器核划分为一个处理器核组。
57.在图1所示的系统中,多个计算设备之间可以进行数据通信,例如第一节点101和第二节点104之间可以进行数据通信。单个节点设备内的处理器核之间也可以进行数据通信,例如,单个第一节点101内部的多个处理器核之间可以进行处理器核之间的数据通信,
处理器核之间的数据通信包括同一核组的处理器核之间的数据通信和不同核组的处理器核之间跨核组的数据通信。
58.在计算设备之间进行数据通信的场景中,第一节点101中的处理器核执行计算任务生成待发送的数据,将待发送的数据打包发送至第一网卡102,通过第一网卡102将待发送的数据发送至交换机103,再由交换机103转发至第二节点104。
59.本技术实施例中第一网卡102能够实现对第一节点101内部的多个处理器核发送的报文进行识别、聚合以及转发,从而减少报文在节点设备101内部跨核组传输。第一网卡102包括处理模块1021,处理模块1021具体用于实现对第一节点101中第一处理器核的设置,设置的第一处理器核为每个处理器核组中负责与网卡通信的处理器核,该第一处理器核也在本技术中可以称作领导(leader)处理器核或者根处理器核。处理模块1021还用于对设置的第一处理器核发送的报文进行识别和聚合。其中,处理模块1021可以是由特定集成电路(application specific integrated circuit,asic),也可以是现场可编程门阵列(field programmable gate array,fpga),微处理器mpu(micro-processing unit)等硬件形式,具体不做限定。
60.需要说明的,本技术实施例中第一网卡102也可以集成在第一节点101中,当第一网卡102集成在第一节点101中时,第一网卡102可以是第一节点101中的板载网卡。
61.第一节点101中的处理器核与第一网卡102的通信场景包括多对一的扇入场景(fan-in)和一对多的扇出(fan-out)场景。其中,多对一的扇入场景是指第一节点101中的多个处理器核发送的数据在第一网卡102聚合之后,由第一网卡102发送到第二节点104的过程。一对多的扇出场景是指第一网卡102接收到第二节点104发送的数据后,由第一网卡102分发至第一节点101内的多个处理器核的过程。
62.本技术实施例中提供的数据传输方法包括扇入场景和数据扇出场景,下面以数据扇入场景为例,结合附图对本技术实施例提供的数据传输方法进行介绍:
63.请参阅图2,图2为本技术实施中提供的一种扇入场景下的数据传输方法的流程示意图,所述方法包括以下步骤:
64.201.第一节点101内的多个第一处理器核执行计算任务生成第一数据。
65.本技术实施例中第一节点101包括多个核组,其中,第一核组1011为第一节点101中多个核组中的任意一个核组,第一核组1011中包括第一处理器核10111和至少一个第二处理器核10112,其中,第一处理器核10111为第一核组中预先设置的leader处理器核,leader处理器核负责与第一网卡进行交互。可以理解的是,第一节点101中的多个核组中每个核组中都会设置一个第一处理器核,由该第一处理器核与第一网卡进行交互。
66.第一节点101内的多个第一处理器核执行计算任务生成第一数据。具体的,第一节点101内的多个第一处理器核在执行计算任务的过程中,以第一核组1011中的第一处理器核10111为例,第一核组1011中的第一处理器核10111将第一核组1011内至少一个第二处理器核10112发送的数据与该第一处理器核10111中的数据聚合为第一数据,该第一数据即为第一处理器核执行计算任务生成的第一数据。
67.应理解,第一节点101中多个核组中每个核组的第一处理器核都能够执行计算任务生成第一数据,即第一节点101内的多个第一处理器核中的每个处理器核执行计算任务生成第一数据。
68.在一些实施例中,第一节点101内的处理器核没有划分核组,第一节点101只包括第一处理器核,每个第一处理器核将自己执行计算任务后的第一数据发送给网卡,由网卡进行聚合。
69.为了方便描述,以下均已第一节点101内的处理核划分核组为例进行说明。
70.在一个执行计算任务的示例中,第一节点101执行高性能计算hpc应用的任务,hpc应用例如天气预报应用,第一节点101启动多个进程,多个进程所在的处理器核需要进行集合通信,集合通信包括reduce、broadcast和all-reduce。例如,在进行all-reduce通信时,对通信域内的每个处理器核的输入缓冲区的数据执行规约操作,并将规约操作后的结果返回至每个处理器核的输出缓冲区,该结果即为执行计算任务的第一数据,上述规约操作包括求和、求最大值或最小值等。
71.在all-reduce通信中,通信参数包括输入缓冲的起始地址revbuf、输出缓冲区的起始地址sendbuf、数据个数count和数据类型datatype。在all-reduce通信中,第一节点中所有的处理器核具有相同的通信参数,因此每个处理器核中的进程都提供长度相同、元素类型相同的输入缓冲区和输出缓冲区。
72.由于本技术实施例中的核组划分是基于处理器核的硬件归属进行划分的,即上述第一核组1011可以是一个中央处理器cpu单元,也可以是一个非统一内存访问numa单元。下面结合附图分别介绍两种核组划分方式下,第一节点的多个第一处理器核执行计算任务生成第一数据的步骤。
73.请参阅图3a,图3a为本技术实施提供的一种集合通信的示意图。如图3a所示,第一节点102中的处理器核按照cpu归属范围分多个核组,假设cpu1为第一核组1011,cpu2为第二核组1012。第一核组1011的处理器核包括cpu1中处理器核0至处理器核47,其中处理器核0为第一核组1011中的第一处理器核。第二核组1012的处理器核包括cpu2中的处理器核48到处理器核95,其中,处理器核48为第二核组中的第一处理器核。
74.在图3a所示的示例中,以cpu1中的处理器核为例,cpu1中的处理器核在执行计算任务的过程中,处理器核1至处理器核47将数据发送至处理器核0,处理器0对处理器核1至处理器核47发送的数据和处理器核0的数据进行聚合操作,得到第一数据。
75.请参阅图3b,图3b为本技术实施提供的另一种集合通信的示意图。如图3b所示,第一节点101中的处理器核按照numa归属范围分多个核组,假设numa1为第一核组1011,numa2为第二核组1012,numa3为第三核组1013,numa4为第四核组1014。第一核组1011的处理核包括numa1中处理器核0至处理器核23,其中处理器核0为第一核组1011中的第一处理器核。第二核组1012的处理器核包括numa2中的处理器核24到处理器核47,其中,处理器核24为第二核组1012中的第一处理器核。第三核组1013的处理器核包括numa3中的处理器核48到处理器核71,其中,处理器核48为第三核组中的第一处理器核。第四核组1014的处理器核包括numa4中的处理器核72到处理器核95,其中,处理器核72为第四核组1014中的第一处理器核。
76.在图3b所示的示例中,以numa1中的处理器核为例,numa1中的处理器核在执行计算任务的过程中,处理器核1至处理器核23将数据发送至处理器核0,处理器0对处理器核1至处理器核23发送的数据和处理器核0的数据进行聚合操作,得到第一数据。
77.202.第一节点101中的多个第一处理器核中每个第一处理器核向第一网卡102发
送第一数据。
78.第一节点101中的多个第一处理器核中每个第一处理器核向第一网卡102发送第一数据。具体的,第一节点101中的多个第一处理器核中的每个第一处理器核将第一数据打包为第一报文后,向第一网卡102发送第一报文,其中,第一报文中包括指示第一网卡102对多个第一数据进行聚合操作的标记。
79.可以理解的是,第一网卡102接收需要进行聚合操作的第一报文之外,还会接收处第一节点1011发送的常规报文,第一网102卡则基于上述标记识别需要进行聚合操作的第一报文,对于第一报文执行聚合操作,对于其他常规报文,则直接进行转发。
80.请参阅图4,图4为本技术实施例提供的一种第一报文的报文格式示意图。如图4所示,在第一报文的mpi+报文头中包括多个字段,其中“coll tag”字段或“coll tag high 32”字段即为上述第一报文的标记。第一网卡可以根据“coll tag”字段或“coll tag high 32”字段识别需要进行聚合操作的第一报文。第一报文的mpi+报文头中还包括其他字段,例如,通信域标识comm id、操作类型标识opt code和数据类型标识data type等。
81.请继续参阅图3a,在图3a所示的示例中,第一节点101的cpu1中的处理器核0将生成的第一数据打包成第一报文之后,发送至第一网卡102,第一网卡102根据第一报文中的标记识别第一报文为需要进行聚合操作的报文。同样的,第一节点101的cpu2中的处理器核0也将生成的数据打包为第一报文发送至第一网卡102,第一网卡102接收多个cpu1中leader核发送的第一报文。
82.相应的,在图3b所示的示例中,第一节点101中的多个numa单元内的leader核向第一网卡102发送第一报文,numa1单元中的处理器核0、numa2单元中处理器核24、numa3单元中的处理器核48和numa4单元中的处理器核72分别向第一网卡102发送第一报文。第一网卡102接收来自多个numa单元的leader核发送的第一报文,并根据多个第一报文的标记识别需要进行聚合操作的报文。
83.203.第一网卡102对多个第一处理器核发送的第一数据执行聚合操作。
84.第一网卡102对多个第一处理器核发送的第一数据执行聚合操作。具体的,第一网卡102接收第一节点发送的多个报文后,根据报文头中的标记识别第一报文,对于具有标记的第一报文中的第一数据进行聚合操作。
85.请参阅图5,图5为本技术实施例提供的一种网卡对报文执行聚合操作的示意图。如图5所示,第一网卡102的网络接口控制器1022(network interface controller,nic)接收第一节点101的不同核组的leader处理器发送的第一报文之后,由第一网卡102内部的处理模块1021识别第一报文中的标记,并对具有该标记的第一报文中的第一数据执行聚合操作,生成聚合操作后的报文,并将聚合后的报文发送至第一网卡102内部的网络接口控制器1022。
86.204.第一网卡102将聚合操作后生成的数据发送至第二节点。
87.第一网卡102将聚合操作后生成的数据发送至第二网卡105。具体的,第一网卡102的网络接口控制器1022将聚合操作生成的报文发送至交换机,由交换机转发至与第二节点104相连接的第二网卡105。
88.由以上实施例可以看出,本技术实施例中第一网卡能够实现对第一处理器核发送的数据执行聚合操作,相较于第一节点内的多个第一处理器核发送的数据先由其中一个第
一处理器核对数据执行聚合操作后再发送至第一网卡,由第一网卡执行聚合操作的方案减少了第一节点的内部多个第一处理器核之间的通信时延,进而减少了计算系统的通信时延。
89.以上实施例步骤201至步骤204详细介绍了计算系统在扇入场景下的数据传输方法,计算机系统在扇出场景下的数据传输方法与上述方法类似,下面结合图6对扇出场景下的数据传输方法进行介绍。扇出场景下的数据传输方法包括以下步骤:
90.601.第一网卡102接收第二节点104发送的第二报文。
91.第一网卡102接收第二节点104发送的第二报文。具体的,第二节点104向交换机103发送第二报文,交换机103根据第二报文的目的地址将第二报文转发至第一网卡102。第二报文中同样包括用于指示第一网卡102对第二报文进行广播的标记,该标记与上述扇入场景中第一报文的标记相同,此处不再赘述。
92.602.第一网卡102根据第二报文的标记将第二报文广播至第一节点101中多个第一处理器核。
93.第一网卡102根据第二报文的标记将第二报文广播至第一节点101中多个第一处理器核。具体的,第一网卡102根据第二报文的标记和第一网卡102中所设置的多个第一处理器核的标记将第二报文广播至第一节点101中的多个第一处理器核。
94.应理解,第一网卡102会接收第二节点104发送的多个报文,第一网卡102识别第二节点104发送的报文,对于具有上述标记的第二报文执行广播操作。
95.需要说明的是,计算系统在创建通信域的时候,计算系统会在第一网卡102中设置第一处理器核,即预先在第一网卡102中设置与网卡进行交互的leader处理器核,这样,第一网卡102在接收到需要进行广播操作第二报文时,可以将第二报文广播至第一节点中的多个leader处理器核。
96.第一网卡102可以有多种方式设置第一处理器核,例如,计算系统在创建通信域时的资源初始化流程中,第一节点1011基于多个第一处理器核进行与网卡进行一次all-reduce集合通信操作,便可以在第一网卡102中设置第一网卡102对应的通信域的第一处理器核。
97.603.多个第一处理器核将第二报文分发至同核组内的至少一个第二处理器核。
98.多个第一处理器核将第二报文分发至同核组内的至少一个第二处理器核。例如,在第一节点101的第一核组1011中,第一核组1011中的第一处理器核在将第二报文分发至第一核组1011中的至少一个第二处理器核中。
99.从以上实施例中可以看出,本技术实施例中第一网卡102能够实现对第二节点104发送的第二报文执行广播操作,相较于第一网卡102将第二报文转发至第一节点101,再由第一节点101中第一处理器核将第二报文广播至不同核组的处理器核的方案,避免了第二报文在第一节点101内跨核组广播,从而减少了对第二报文进行广播的时延,进一步减少计算系统的通信时延。
100.请参阅表1,表1为本技术实施例提供的一种数据传输方法的时延降低率的表格。如表1所示,以表1中96个处理器核的第一节点为例,其中“node-based时延”是指第一节点中不同核组的第一处理器核发送的数据在节点内其中一个第一处理器核聚合之后,再通过网卡转发至外部节点的通信时延。“socket-based时延”是指本技术中第一节点中不同核组
的第一处理器核发送的数据直接发送至第一网卡,由第一网卡进行聚合操作后转发至外部节点的通信时延。
101.从表1中可以看出,以8个字节的传输数据为例如,本技术实施例提供的“socket-based”数据传输方法相较于“node-based”数据传输方法,计算系统的通信时延降低了26.28%。
102.表1
[0103][0104]
以上介绍了本技术实施例中的数据传输方法,下面介绍本技术实施例涉及的相关装置。
[0105]
请参阅图7,图,7为本技术实施例提供的一种网卡的结构示意图。该网卡用于实现上述各实施例中第一网卡所执行的各个步骤,如图7所示,该网卡700包括收发单元701和处理单元702。
[0106]
收发单元701用于接收第一节点中多个第一处理器核中的每个处理器发送的第一数据。处理单元702用于对多个第一数据执行聚合操作。收发单元701还用于向第二节点发送执行聚合操作后的数据。
[0107]
一种可能的实施方式中,收发单元701具体用于接收第一处理器核发送的包括第一数据的第一报文,第一报文包括指示第一网卡对第一数据进行聚合操作的标记。处理单元702具体用于对具有标记的第一报文中的第一数据进行聚合。
[0108]
一种可能的实施方式中,收发单元701用于接收第一节点中多个第一处理器核中的每个处理器核发送的第一数据之前,处理单元702还用于设置多个第一处理器核。
[0109]
一种可能的实施方式中,收发单元701还用于接收第二节点发送的第二报文,第二报文中包括指示第一网卡对第二报文进行广播的标记。收发单元701还用于根据第二报文的标记及第一网卡中所设置的多个第一处理器核的标记将第二报文发送至多个第一处理器核。
[0110]
请参阅图8,图8为本技术实施例提供的一种计算设备的结构示意图。例如第一节点的功能模块图。该计算设备800中每个核组的第一处理器核包括收发单元801、聚合单元802,每个核组中的第二处理器核包括发送单元803,所述收发单元801和聚合单元802用于执行图2及图6中第一处理器核所执行的功能,所述发送单元用于执行图2及图6中第二处理器核所执行的功能。第一处理器核的收发单元801用于接收至少一个第二处理器核的发送单元803发送的数据。聚合单元802用于将至少一个第二处理器核发送的数据与第一处理器核中的数据聚合为第一数据,第一处理器核的收发单元801还用于向网卡发送第一数据,并
programmable gate array,fpga)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
[0120]
存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。存储器920还可以包括非易失性随机存取存储器。例如,存储器920可设置多个分区,每个区域分别用于存储不同软件模块的私钥。
[0121]
存储器920可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0122]
总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。总线可以是快捷外围部件互连标准(peripheral component interconnect express,pcie)总线,或扩展工业标准结构(extended industry standard architecture,eisa)总线、统一总线(unified bus,ubus或ub)、计算机快速链接(compute express link,cxl)、缓存一致互联协议(cache coherent interconnect for accelerators,ccix)等。总线可以分为地址总线、数据总线、控制总线等。
[0123]
可以理解的是,本技术实施例中图7所示的网卡700和图9所示的网卡900可以是上述图1所示的系统架构中的第一网卡,本技术实施例中图8所示计算设备800可以上述图1所示的系统架构中的第一节点。
[0124]
在本技术的另一个实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中第一网卡或者第一节点所执行的方法。
[0125]
在本技术的另一个实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中。当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中第一网卡或者第一节点所执行的方法。
[0126]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0127]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0128]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0129]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0130]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
技术特征:
1.一种计算系统,包括第一节点和第二节点,所述第一节点连接第一网卡,所述第一节点通过所述第一网卡连接至所述第二节点;所述第一节点包括多个第一处理器核,每个第一处理器核用于执行计算任务,根据所述计算任务生成第一数据,并将所述第一数据发送至所述第一网卡;所述第一网卡用于对所述多个第一处理器核发送的多个第一数据执行聚合操作,并将执行聚合操作后生成的数据通过所述第一网卡发送给所述第二节点。2.根据权利要求1所述的计算系统,其特征在于,所述第一节点包括多个核组,第一核组为所述多个核组中的任意一个核组,所述第一核组包括一个第一处理器核及至少一个第二处理器核,所述第一核组中的第一处理器核所执行的计算任务包括将所述第一核组中的所述至少一个第二处理器核发送的数据与所述第一处理器核中的数据聚合为所述第一数据。3.根据权利要求2所述的计算系统,其特征在于,所述第一核组中的第一处理器核通过将所述第一数据打包为第一报文发送给所述第一网卡,所述第一报文包括指示所述第一网卡对所述第一数据进行聚合操作的标记;所述第一网卡用于对具有所述标记的第一报文中的第一数据进行聚合。4.根据权利要求1至3任意一项所述的计算系统,其特征在于,所述第一网卡还用于在所述第一网卡中设置所述多个第一处理器核。5.根据权利要求4所述的计算系统,其特征在于,所述第一网卡还用于接收所述第二节点发送的第二报文,所述第二报文中包括指示所述第一网卡对所述第二报文进行广播的标记;所述第一网卡根据所述第二报文的标记及所述第一网卡中所设置的所述多个第一处理器核的标记将所述第二报文发送至所述多个第一处理器核。6.根据权利要求5所述的计算系统,其特征在于,所述第一核组中的第一处理器核用于将所述第二报文发送至所述第一核组中的所述至少一个第二处理器核中。7.根据权利要求2-6任意一项所述的计算系统,所述第一核组中所包括的第一处理器核和所述至少一个第二处理器核归属于一个中央处理单元cpu,或者归属于一个非统一内存访问numa单元。8.一种数据传输方法,其特征在于,包括:第一网卡接收第一节点中多个第一处理器核中的每个处理器核发送的第一数据;所述第一网卡对所述多个第一数据执行聚合操作;所述第一网卡向第二节点发送执行聚合操作后的数据。9.根据权利要求8所述的方法,其特征在于,所述第一网卡接收第一节点中多个第一处理器核中的每个处理器核发送的第一数据包括:所述第一网卡接收所述第一处理器核发送的包括所述第一数据的第一报文,所述第一报文包括指示所述第一网卡对所述第一数据进行聚合操作的标记;所述第一网卡对所述多个第一数据执行聚合操作包括:所述第一网卡对具有所述标记的第一报文中的第一数据进行聚合。10.根据权利要求8至9中任一项所述的方法,其特征在于,所述第一网卡接收第一节点中多个第一处理器核中的每个处理器核发送的第一数据之前,所述方法还包括:
所述第一网卡设置所述多个第一处理器核。11.根据权利要求10所述的方法,其特征在于,所述方法还包括:所述第一网卡接收所述第二节点发送的第二报文,所述第二报文中包括指示所述第一网卡对所述第二报文进行广播的标记;所述第一网卡根据所述第二报文的标记及所述第一网卡中所设置的所述多个第一处理器核的标记将所述第二报文发送至所述多个第一处理器核。12.根据权利要求8至11中任一项所述的方法,其特征在于,所述第一节点包括多个核组,所述核组包括第一处理器核和至少一个第二处理器核,其中第一核组为所述多个核组中的任意一个核组,所述方法还包括:所述第一核组中的第一处理器核接收所述第一核组中的所述至少一个第二处理器核发送的数据;所述第一核组中的第一处理器核将所述第一核组中的至少一个第二处理器核发送的数据与所述第一处理器核中的数据聚合为第一数据。13.根据权利要求12所述的方法,其特征在于,所述方法还包括:所述第一核组中的第一处理器核接收所述第一网卡发送的第二报文;所述第一核组中的第一处理器核将所述第二报文发送至所述第一核组中的所述至少一个第二处理器核中。14.一种网卡,其特征在于,包括处理器,所述处理器与存储器耦合,所述存储器用于存储指令,当所述指令被所述处理器执行时,以使得所述网卡执行权利要求8至13中任一项中第一网卡所执行的方法。15.一种芯片,包括接口及处理单元,所述接口用于收发数据,所述处理单元用于执行权利要求8至13中任一项中第一网卡所执行的功能。
技术总结
本申请实施例公开了一种计算系统以及数据传输方法,用于降低计算系统的通信时延。本申请实施例计算系统包括第一节点和第二节点,第一节点连接第一网卡,第一节点通过第一网卡连接至第二节点。第一节点包括多个第一处理器核,每个第一处理器核用于执行计算任务,根据计算任务生成第一数据,并将第一数据发送至第一网卡。第一网卡用于对多个第一处理器核发送的多个第一数据执行聚合操作,并将执行聚合操作后生成的数据通过第一网卡发送给第二节点。作后生成的数据通过第一网卡发送给第二节点。作后生成的数据通过第一网卡发送给第二节点。
技术研发人员:勾文进
受保护的技术使用者:华为技术有限公司
技术研发日:2022.03.24
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
