CN117278475A - 用于多节点系统的图数据通信方法、电子设备及存储介质 - Google Patents
用于多节点系统的图数据通信方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117278475A CN117278475A CN202311079971.5A CN202311079971A CN117278475A CN 117278475 A CN117278475 A CN 117278475A CN 202311079971 A CN202311079971 A CN 202311079971A CN 117278475 A CN117278475 A CN 117278475A
- Authority
- CN
- China
- Prior art keywords
- node
- data packet
- vertex
- nodes
- broadcast
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims abstract description 19
- 239000013598 vector Substances 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000007876 drug discovery Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本披露公开了一种用于多节点系统的图数据通信方法、电子设备及存储介质。该方法包括:将图数据中的顶点分配至多节点系统中的节点,以生成每一节点的顶点集合和出边集合;根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域;基于每个节点的顶点集合和出边集合形成每个节点的数据包;以及从逻辑广播域中选定一个节点作为广播点,以通过广播点将数据包发送给逻辑广播域中的其他节点。利用本披露实施例的方法,可以通过构建出适用于每一节点中数据包的逻辑广播域,缩小每一数据包的传输范围,从而避免数据包在非必要节点之间往复传输,实现多节点之间的高效通信。
Description
技术领域
本披露一般涉及通信技术领域。更具体地,本披露涉及一种用于多节点系统的图数据通信方法、电子设备及存储介质。
背景技术
图神经网络具有强大的问题处理和感知能力,是信息高速发展的大数据时代亟需和极为重要的一种智能技术,其在诸如类脑科学、药物发现等重点科学领域得到了广泛应用。
随着各层级互联技术的发展,诸如社交网络、物联网等相关领域的图规模爆炸式增长。要在此类大规模的图数据上做运算,单个节点的存储和算力等资源难以负载,例如,存储容量不足以容纳整个图数据,单节点系统只能将大容量的外存当作交换区,但这会造成访存时间大幅增加。同理,图神经网络的运算量与图规模呈正相关,大规模的图数据导致计算量大幅增加,但单节点系统的计算能力有限,因此单节点系统的计算时间也会大幅增加。由此可见,面对规模爆炸式增长的图数据,单个节点难以在合理时间内完成任务,因此,多节点的运算系统成为了处理图数据的一种优选方案。
然而,在多节点系统中,各节点之间的数据通信是多节点协作的重要环节之一。由于多节点系统的网络传输需要经过多个节点,每个节点的处理时间、网络带宽、数据包大小等因素均会影响数据在网络中的传输速度和延迟时间。网络时延的大小直接影响着网络的速度和响应时间,也进一步影响了图数据的运算效率。
有鉴于此,亟需提供一种用于多节点系统的图数据通信方案,以便提高多节点系统中各节点之间进行图数据通信的速度,进而提升图数据处理的效率。
发明内容
为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了用于多节点系统的图数据通信方案。
在第一方面中,本披露提供一种用于多节点系统的图数据通信方法包括:将图数据中的顶点分配至多节点系统中的节点,以生成每一节点的顶点集合和出边集合;根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域;基于每个节点的顶点集合和出边集合形成每个节点的数据包;以及从逻辑广播域中选定一个节点作为广播点,以通过广播点将数据包发送给逻辑广播域中的其他节点。
在一些实施例中,其中将图数据中的顶点分配至多节点系统中的节点,以生成每一节点的顶点集合和出边集合包括:将顶点的特征向量分配至节点;标记顶点v被分配到的节点序号为f(v);遍历每个节点分配到的顶点的出边,以形成每个节点的出边集合;以及对于出边集合中的每条出边,将其尾顶点u加入至编号为f(u)的尾顶点集合中,其中f(x)表示为顶点x被分配到的节点序号。
在一些实施例中,其中一个节点的数据包包括:目的节点的拓扑信息和广播点控制信号、节点中顶点的特征向量以及节点的出边集合中每条出边的尾顶点;其中,目的节点为在数据包的传输路径上,节点的下一节点。
在一些实施例中,其中一个节点的数据包包括数据包包头和数据包包体,数据包的形成步骤包括:将节点中顶点的特征向量和尾顶点集合打包成数据包包体;将数据包的传输路径上,节点的下一节点确定为目的节点;以及将目的节点的节点序号、拓扑信息和广播点控制信号加入数据包包头,以形成节点的数据包。
在一些实施例中,其中根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域包括:从节点序号为f(u)的所有节点中,去除与本节点同序号的节点;以及基于剩余的节点构建出本节点的逻辑广播域。
在一些实施例中,其中从逻辑广播域中选定一个节点作为广播点包括:检测逻辑广播域中各个节点的拥堵程度;以及选取其中拥堵程度最小的节点作为广播点。
在一些实施例中,其中通过广播点将数据包发送给逻辑广播域中的其他节点包括:将节点的数据包由节点发送至广播点;以及按照目的节点的拓扑信息和节点的出边集合中每条出边的尾顶点,将数据包从广播点分发至逻辑广播域中的其他节点。
在一些实施例中,节点为通信接收端时,该方法还包括:响应于节点接收到另一节点的数据包,读取数据包包头中目的节点的节点序号和广播点控制信号;判断节点的节点序号是否等于目的节点的节点序号;响应于节点的节点序号等于目的节点的节点序号,根据广播点控制信号确定节点是否为广播点;响应于节点为广播点,将数据包的副本转交至节点内的顶点,并读取数据包包体中的尾顶点集合,以向各尾顶点所在节点分发数据包;响应于节点非广播点,将数据包的副本转交至节点内的顶点。
在第二方面中,本披露提供一种电子设备包括:处理器;以及存储器,其存储有可执行的程序指令,当程序指令由处理器执行时,使得设备实现根据第一方面任意一项的方法。
在第三方面中,本披露提供一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现如第一方面任意一项的方法。
通过如上所提供的用于多节点系统的图数据通信方法,本披露实施例根据图数据中顶点与系统中节点之间的分配关系,构建出适用于每一节点中数据包的逻辑广播域。逻辑广播域的构建缩小了每一数据包的传输范围,避免了数据包在非必要节点之间往复传输的情况发生。再从逻辑广播域中选定的一个节点作为广播点,以有针对性和方向性地进行数据包的分发,从而提高了图数据通信的效率,减少了多节点系统中图数据通信的无效耗时。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出了本披露一些实施例的用于多节点系统的图数据通信方法的示例性流程图;
图2示出了本披露一些实施例的用于多节点系统的节点分配方法的示例性流程图;
图3示出了本披露一些实施例的节点分配情况示意图;
图4示出了本披露一些实施例的数据包形成方法的示例性流程图;
图5示出了本披露另一些实施例的节点分配情况的示意图;
图6示出了本披露一些实施例的数据接收方法的示例性流程图;
图7示出了本披露实施例的电子设备的示例性结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本披露的具体实施方式。
示例性应用场景
图神经网络具有强大的问题处理和感知能力,是信息高速发展的大数据时代亟需和极为重要的一种智能技术,其在诸如类脑科学、药物发现等重点科学领域得到了广泛应用。
图神经网络的主要执行过程可以分为两大阶段,其一为聚合阶段,其二为组合阶段。聚合阶段的执行行为与传统的图遍历应用相似,具体包括遍历整张图,对于每个顶点聚合其所有邻居顶点的特征向量,而组合阶段的执行行为则与传统神经网络应用相似,具体包括通过多层感知机来对每个顶点的特征向量进行转换和更新。由此可见,图神经网络兼备了传统图计算应用的不规则执行行为和传统神经网络的规则执行行为,呈现为一种复杂的混合执行特征。有鉴于此,传统通用处理器无法高效处理图神经网络应用,多节点的运算系统成为了处理图数据的一种优选方案。
在多节点协作的运算系统中,节点之间的通信时长占据了系统耗时的很大占比,每个节点的处理时间、网络带宽、数据包大小等因素均会影响数据在网络中的传输速度和延迟时间。尤其是面对大规模且不规则的图数据,通信时长大幅增长,因此高效的节点通信对于提高多节点系统的数据处理时效至关重要。
示例性应用方案
有鉴于此,本披露实施例提供了一种用于多节点系统的图数据通信方案,其通过构建每一节点的逻辑广播域来缩小每一数据包的传输范围,并从逻辑广播域中选定的一个节点作为广播点,以有针对性和方向性地进行数据包的分发,从而减少数据包在非必要节点之间的冗余传输过程,实现了多节点系统的高效数据通信。
图1示出了本披露一些实施例的用于多节点系统的图数据通信方法100的示例性流程图。如图1所示,在步骤S101中,将图数据中的顶点分配至多节点系统中的节点,以生成每一节点的顶点集合和出边集合。
图数据从数据结构上来看,可以视作点和边的集合G=(V,E),其中V是有穷非空的点集,v表示点,v∈V,v用于表示实体或实例,E是有穷的边集,e表示边,e∈E,边是点与点之间的连接线,e表示的是点与点之间的关系。为了便于与多节点系统中的节点进行区分,本披露将图数据中的点称作顶点。
图数据中的边可以分为有向边和无向边,对于一条有向边而言,其起点为头顶点,终点为尾顶点,对于头顶点而言,该有向边称为出边。
多节点系统中的节点可以理解为网络节点,节点可以是工作站、服务器、PC或打印机等设备。在多节点系统中,多个节点之间相互连接,可以进行数据互传。
在本实施例的步骤S101中,可以将图数据中包含的多个顶点先分配至多节点系统中,对于每一节点,其可以分配到一个或若干个顶点,因此对于每一个节点而言可以形成属于自己的一个顶点集合。进一步地,遍历顶点集合中的每一顶点,可以从图数据中识别出以该顶点作为头顶点的出边,进而形成每一节点的出边集合,可以理解,该出边集合中的每一条出边的头顶点位于当前节点。
需要说明的是,在实际应用时存在某条出边,其头顶点和尾顶点位于同一节点的情况。例如图数据包括顶点1、顶点3和顶点4,分配完毕后,顶点1和顶点4被分配至同一节点1,而顶点3则被分配至节点2,那么有向边(1,4)为节点1的出边集合的一条出边,且其尾顶点也位于节点1,有向边(1,3)为节点1的出边集合的一条出边,且其尾顶点位于节点2。
在步骤S102中,根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域。在本实施例中,图神经网络在聚合阶段需要对每个顶点聚合其所有邻居顶点的特征向量,而一条出边的头顶点即为该条出边的尾顶点的邻居顶点,由此可以明确数据包的一个传输方向为由头顶点向尾顶点传输,因此在本实施例中,每个节点的目的节点可以基于节点的出边集合中出边的尾顶点确定,其中目的节点指的是在数据包的传输路径上,该节点的下一节点。
进一步地,每个节点的出边集合可以包括多条出边,每一出边具有一个尾顶点,根据该尾顶点所在的节点可以确定一个目的节点,该节点的数据包需要传输至该目的节点。由于一个节点的数据包数量是有限的,对于一个节点而言,多节点系统中并不是所有节点都需要获取其发出的数据包,因此可以基于该节点所有数据包的目的节点构建出一个局部的通信域,即根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域,从而将不需要接收该节点数据包的其他节点排除,减少数据包在这些节点中的传输,达到提高通信效率的效果。
在步骤S103中,基于每个节点的顶点集合和出边集合形成每个节点的数据包。进一步地,在一些实施例中,每个节点的数据包可以包括:目的节点的拓扑信息和广播点控制信号、节点中顶点的特征向量以及节点的出边集合中每条出边的尾顶点。
由于在每一节点中,一个顶点可以作为多条出边的头顶点,因此,对于节点中的一个顶点可以形成一个数据包,对于节点的顶点集合则可以形成一个节点的多个数据包。
在步骤S104中,从逻辑广播域中选定一个节点作为广播点,以通过广播点将数据包发送给逻辑广播域中的其他节点。在每个节点的数据包中,设置有广播点控制信号,该广播点控制信号用于指示目的节点是否为选定的广播点。具体地,在实际应用时,可以用一个信号来表示广播点控制信号,0表示不作为广播点,1表示作为广播点。可以理解的是,也可以采用其他信号形式来表示广播点控制信号,此处不再赘述。
在一些实施例中,广播点的选定可以基于节点的拥堵程度来执行,具体包括:检测逻辑广播域中各个节点的拥堵程度,选取其中拥堵程度最小的节点作为广播点,该选定的节点的广播点控制信号可以设置为1,逻辑广播域中其他节点的广播点控制信号可以设置为0。选定广播点后,节点将其数据包发送至广播点,再经由该广播点发送给逻辑广播域内的其余节点,具体地,广播点可以按照数据包中的拓扑信息和节点的出边集合中每条出边的尾顶点,将数据包从所述广播点分发至逻辑广播域中的其他节点。
在本披露实施例中,逻辑广播域的构建缩小了每一数据包的传输范围,避免了数据包在非必要节点之间往复传输的情况发生。再从逻辑广播域中选定的一个节点作为广播点,通过该广播点能够有针对性和方向性地进行数据包的分发,从而提高了通信效率,减少通信的无效耗时。
进一步地,在构建逻辑广播域时,可以忽略生成数据包的本节点。一方面,若节点本身作为其自身的一个目的节点,即前述实施例中示出的有向边(1,4)的情况,其头顶点和尾顶点均位于节点1,那么其数据可以直接在节点1中进行迁移,无需进行节点之间的通信。另一方面,在选定广播点时,可以避免生成数据包的本节点同时作为起自身的广播点,执行数据分发的任务,导致节点超负载运行。
在一些实施例,可以通过节点序号区分各节点,从而在构建逻辑广播域时,仅需对节点序号进行筛选即可避免将生成数据包的本节点加入逻辑广播域中。
在一些实施例中,可以在将图数据中的顶点分配至多节点系统的节点的步骤中,完成节点序号的分配。图2示出了本披露一些实施例的用于多节点系统的节点分配方法200的示例性流程图。可以理解,节点分配方法是前述步骤S101中的一种具体实现,因此前文结合图1描述的特征可以类似地应用于此。
如图2所示,在步骤S201中,将顶点的特征向量分配至节点。在本实施例中,顶点v被分配至节点后,顶点v的特征向量也相应分配至该节点,以形成该节点的数据包。
在步骤S202中,标记顶点v被分配到的节点序号为f(v)。在本实施例中,f(x)代表了顶点与节点之间的对应关系,具体表示顶点x被分配到的节点序号,其为一种隐函数。
为了便于理解,本实施例提供了如图3所示的节点分配情况,图3示出了本披露一些实施例的节点分配情况300的示意图。参见图3,顶点14被分配至节点14,即f(14)=14,顶点23被分配至节点7,即f(23)=7。同理可知,在图3所示的节点分配情况中,f(4)=4,f(5)=5,f(6)=6,f(7)=7,f(9)=9。
在步骤S203中,遍历每个节点分配到的顶点的出边,以形成每个节点的出边集合。以图3中的顶点14为例,其出边集合为{(14,9),(14,4),(14,5),(14,6),(14,7),(14,23),(14,10)},由于节点14中仅包含一个顶点14,因此节点14的出边集合即为{(14,9),(14,4),(14,5),(14,6),(14,7),(14,23),(14,10)}。
需要说明的是,在本实施例中,步骤S203的执行顺序可以在步骤S202之前,也可以与步骤S202并行,上述关于步骤S202与步骤S203的执行顺序不构成对本披露的唯一限定。
在步骤S204中,对于出边集合中的每条出边,将其尾顶点u加入至编号为f(u)的尾顶点集合中。在本实施例中,遍历完成后,可以从出边集合中得到每个出边的尾顶点,进而明确数据包即将发送至哪一目的节点。具体地,在本实施例中用Sf(u)表示尾顶点集合,其中f(u)既表示尾顶点集合编号以用于区分不同集合,又表示目的节点的节点序号。
仍以图3中的顶点14为例,由于f(9)=9,因此根据其所在节点的出边集合,可以将出边(14,9)中的尾顶点9加入至尾顶点集合S9={9},同理地,可以将尾顶点7和尾顶点23加入至尾顶点集合S7={7,23},以此类推,可以得到如下几个尾顶点集合:S4={4},S5={5},S6={6},S10={10}。
根据前文实施例生成的节点的尾顶点集合可以进一步形成该节点的数据包。在一些实施例中,数据包可以包括数据包包头和数据包包体这两部分,将目的节点的节点序号和广播点控制信号作为数据包包头,其余集合作为结构信息和顶点的特征向量一起打包进数据包包体,即可形成数据包。图4示出了本披露一些实施例的数据包形成方法400的示例性流程图。可以理解,数据包形成方法是前述步骤S103中的一种具体实现,因此前文结合图1描述的特征可以类似地应用于此。
如图4所示,在步骤S401中,将节点中顶点的特征向量和尾顶点集合打包成数据包包体。仍以前文实施例示出的图3为例,其中节点14内的数据包包体可以表示如下:{S4,S5,S6,S7,S9,S10,顶点14的特征向量}。
在步骤S402中,将数据包的传输路径上,节点的下一节点确定为目的节点。针对图3中的节点14,其可选的下一节点包括节点4、5、6、7、9和10,节点14内的路由逻辑在每次发送数据包前获取一次网络状况,并根据网络状况从中选择节点9作为下一节点,并以其作为数据包中的目的节点。
在步骤S403中,将目的节点的节点序号、拓扑信息和广播点控制信号加入数据包包头,以形成节点的数据包。在本实施例中,假设节点14的下一节点为节点9,则节点14内的数据包可以表示为{节点9的拓扑信息,节点9的广播点控制信号,S4,S5,S6,S7,S9,S10,顶点14的特征向量}。
进一步地,在一些实施例中,节点14内的路由逻辑在获取一次网络状况之前可以先依据本节点的拓扑信息形成一个初步的数据包{节点14的拓扑信息,S4,S5,S6,S7,S9,S10,顶点14的特征向量},并将该初步的数据包交给节点14内的路由逻辑,路由逻辑根据网络状况从逻辑广播域中选定一个节点作为数据包中的目的节点,例如节点9,接着用节点9的拓扑信息和广播点控制信号替换节点14的拓扑信息,从而形成数据包{节点9的拓扑信息,节点9的广播点控制信号,S4,S5,S6,S7,S9,S10,顶点14的特征向量}。
需要说明的是,上述关于目的节点的选择过程可以参照前文实施例中的步骤S102,选择拥堵程度最低的节点,也可以以其他指标作为选择依据,此处不再赘述。
在实际应用时,存在如图5所示的情况,图5示出了本披露另一些实施例的节点分配情况500的示意图。在图5中,节点14中还包含有顶点15,其为出边(14,15)的尾顶点,此时节点14的出边集合为{(14,9),(14,4),(14,5),(14,6),(14,7),(14,23),(14,10),(14,15)},对应的尾顶点集合还包括S14={15}。
但由于顶点14和顶点15位于同一节点,因此无需通过节点之间的通信即可实现数据共享,由此,在执行步骤S102和步骤S103时,可以忽略出边(14,15)。具体地,在根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域时,可以从节点序号为f(u)的所有节点中,去除与本节点同序号的节点,接着,基于剩余的节点构建出本节点的逻辑广播域。以图5为例,节点14的出边集合中尾顶点所分配至的节点包括节点4、5、6、7、9、10和14,从中去除与本节点同序号的节点,即节点14,利用剩余的节点4、5、6、7、9和10构建出逻辑广播域。在形成节点14的数据包时,类似地,可以忽略尾顶点集合S14={15},从而形成与图3情况一致的数据包{节点9的拓扑信息,节点9的广播点控制信号,S4,S5,S6,S7,S9,S10,顶点14的特征向量}。
在多节点系统中,多个节点相互连接,可以进行数据互传,因此节点不仅可以作为通信发起方发出数据包,也可以作为通信接收方来接收另一节点发出的数据包。以上实施例介绍了节点作为通信发起方时的通信方法,下面结合图6对于节点作为通信接收方时的通信方法进行介绍。
图6示出了本披露一些实施例的数据接收方法600的示例性流程图。如图6所示,在步骤S601中,响应于当前节点接收到另一节点的数据包,读取数据包包头中目的节点的节点序号和广播点控制信号。在本实施例中,一个节点的数据包可以包括:目的节点的节点序号、拓扑信息和广播点控制信号、节点中顶点的特征向量以及节点的出边集合中每条出边的尾顶点,其中目的节点的节点序号、拓扑信息和广播点控制信号设置在数据包包头,通过读取数据包包头可以读取到目的节点的节点序号和广播点控制信号。
在步骤S602中,判断当前节点的节点序号是否等于目的节点的节点序号。若是,说明该数据包确认是发送至当前节点的数据包,则执行步骤S603;若否,说明该数据包并非当前节点所需的数据包,则执行步骤S606。
在步骤S603中,根据广播点控制信号确定当前节点是否为广播点。若是,说明当前节点为选定的广播点,则当前节点需要执行数据分发的任务,则需要执行步骤S604;若否,则说明当前节点为被分发数据的节点,其仅需执行步骤S605。
在步骤S604中,将数据包的副本转交至当前节点内的顶点,并读取数据包包体中的尾顶点集合,以向各尾顶点所在节点分发数据包。对于广播点而言,其需要将顶点的特征向量副本保存至本地,以图3中的节点9为例,其需要将顶点14的特征向量的副本保存并交付至其本地的顶点9中,以保证顶点9能够聚合其所有邻居顶点的特征向量。另外,广播点还需要读取数据包包体中的尾顶点集合,确定数据包的分发方向,仍以图3中的节点9为例,节点9还需要根据数据包中的集合信息将数据包分别发送给节点5和节点10,再由节点5将数据包分别发送给节点4和节点6。
在步骤S605中,将数据包的副本转交至当前节点内的顶点。若当前节点并非广播点,则其仅需要执行接收数据包的动作,即保存数据包的副本并将其交付至当前节点内的顶点。
在步骤S606中,将数据包转发至目的节点。若接收到的数据包并非当前节点所需的数据包,则当前节点直接将该数据包转发至目的节点,以保证数据通信能够顺利完成。
综上,本披露实施例提供了一种用于多节点系统的图数据通信方法,其通过构建每一节点的逻辑广播域来缩小每一数据包的传输范围,并从逻辑广播域中选定的一个节点作为广播点进行数据包的分发,从而实现了多节点系统中大规模图数据的高效通信。
本披露的一些实施例还提供了一种数据接收方法,其能够根据数据包的包头信息来判断接收数据包的节点所需执行的通信动作,通过明确的通信分工避免产生冗余的通信动作,从而提高节点之间的通信效率。
本披露的一些实施例还提供了一种逻辑广播域的构建方法,利用节点的拥堵程度作为依据,从多个传输方向中选出最优的传输方向,以此提高每个通信线路的通信速度,从而整体上提高多节点系统的通信效率。
与前述应用功能实现方法实施例相对应,本披露实施例中还提供了一种如图7所示的电子设备。图7示出了本披露实施例的电子设备700的示例性结构框图。
图7所示的电子设备700,包括:处理器710;以及存储器720,存储器720上存储有可执行的程序指令,当所述程序指令由所述处理器710来执行时,使得所述电子设备实现如前文所述的任一项方法。
在图7的电子设备700中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:电子设备700还可以包括与图7中所示的组成元素不同的常见组成元素。
处理器710可以控制电子设备700的操作。例如,处理器710通过执行电子设备700上的存储器720中存储的程序,来控制电子设备700的操作。处理器710可以由电子设备700中提供的中央处理单元(CPU)、应用处理器(AP)、人工智能处理器芯片(IPU)等来实现。然而,本披露不限于此。在本实施方式中,处理器710可以按任何适当的方式实现。例如,处理器710可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
存储器720可以用于存储电子设备700中处理的各种数据、指令的硬件。例如,存储器720可以存储电子设备700中的处理过的数据和待处理的数据。存储器720可存储处理器710已处理或要处理的数据集。此外,存储器720可以存储要由电子设备700驱动的应用、驱动程序等。例如:存储器720可以存储与将由处理器710执行的数据包分发、逻辑广播域构建等有关的各种程序。存储器720可以是DRAM,但是本披露不限于此。存储器720可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。易失性存储器可以包括动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、PRAM、MRAM、RRAM、铁电RAM(FeRAM)等。在实施例中,存储器720可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)卡、微安全数字(Micro-SD)卡、迷你安全数字(Mini-SD)卡、极限数字(xD)卡、高速缓存(caches)或记忆棒中的至少一项。
综上,本说明书实施方式提供的电子设备700的存储器720和处理器710实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
或者,本披露还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有计算机程序指令(或计算机程序、或计算机指令代码),当所述计算机程序指令(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使所述处理器执行根据本披露的上述方法的各个步骤的部分或全部。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。
Claims (10)
1.一种用于多节点系统的图数据通信方法,其特征在于,包括:
将图数据中的顶点分配至所述多节点系统中的节点,以生成每一节点的顶点集合和出边集合;
根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域;
基于每个节点的顶点集合和出边集合形成每个节点的数据包;以及
从所述逻辑广播域中选定一个节点作为广播点,以通过所述广播点将所述数据包发送给所述逻辑广播域中的其他节点。
2.根据权利要求1所述的方法,其特征在于,其中将图数据中的顶点分配至所述多节点系统中的节点,以生成每一节点的顶点集合和出边集合包括:
将顶点的特征向量分配至节点;
标记顶点v被分配到的节点序号为f(v);
遍历每个节点分配到的顶点的出边,以形成每个节点的出边集合;以及
对于所述出边集合中的每条出边,将其尾顶点u加入至编号为f(u)的尾顶点集合中,其中f(x)表示为顶点x被分配到的节点序号。
3.根据权利要求1所述的方法,其特征在于,其中一个节点的数据包包括:目的节点的拓扑信息和广播点控制信号、所述节点中顶点的特征向量以及所述节点的出边集合中每条出边的尾顶点;其中,所述目的节点为在所述数据包的传输路径上,所述节点的下一节点。
4.根据权利要求3所述的方法,其特征在于,其中一个节点的数据包包括数据包包头和数据包包体,所述数据包的形成步骤包括:
将所述节点中顶点的特征向量和尾顶点集合打包成所述数据包包体;
将所述数据包的传输路径上,所述节点的下一节点确定为目的节点;以及
将所述目的节点的节点序号、拓扑信息和广播点控制信号加入所述数据包包头,以形成所述节点的数据包。
5.根据权利要求2所述的方法,其特征在于,其中根据每个节点的出边集合中尾顶点所分配至的节点,构建出每个节点的逻辑广播域包括:
从节点序号为f(u)的所有节点中,去除与本节点同序号的节点;以及
基于剩余的节点构建出本节点的逻辑广播域。
6.根据权利要求1所述的方法,其特征在于,其中从所述逻辑广播域中选定一个节点作为广播点包括:
检测所述逻辑广播域中各个节点的拥堵程度;以及
选取其中拥堵程度最小的节点作为所述广播点。
7.根据权利要求3所述的方法,其特征在于,其中通过所述广播点将所述数据包发送给所述逻辑广播域中的其他节点包括:
将所述节点的数据包由所述节点发送至所述广播点;以及
按照所述目的节点的拓扑信息和所述节点的出边集合中每条出边的尾顶点,将所述数据包从所述广播点分发至所述逻辑广播域中的其他节点。
8.根据权利要求4所述的方法,其特征在于,节点为通信接收端时,所述方法还包括:
响应于节点接收到另一节点的数据包,读取所述数据包包头中目的节点的节点序号和广播点控制信号;
判断所述节点的节点序号是否等于所述目的节点的节点序号;
响应于所述节点的节点序号等于所述目的节点的节点序号,根据所述广播点控制信号确定所述节点是否为广播点;
响应于所述节点为广播点,将所述数据包的副本转交至所述节点内的顶点,并读取所述数据包包体中的尾顶点集合,以向各尾顶点所在节点分发所述数据包;
响应于所述节点非广播点,将所述数据包的副本转交至所述节点内的顶点。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,其存储有可执行的程序指令,当所述程序指令由所述处理器执行时,使得所述设备实现根据权利要求1-8任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现如权利要求1-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311079971.5A CN117278475A (zh) | 2023-08-24 | 2023-08-24 | 用于多节点系统的图数据通信方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311079971.5A CN117278475A (zh) | 2023-08-24 | 2023-08-24 | 用于多节点系统的图数据通信方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117278475A true CN117278475A (zh) | 2023-12-22 |
Family
ID=89220464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311079971.5A Pending CN117278475A (zh) | 2023-08-24 | 2023-08-24 | 用于多节点系统的图数据通信方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117278475A (zh) |
-
2023
- 2023-08-24 CN CN202311079971.5A patent/CN117278475A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11575609B2 (en) | Techniques for congestion management in a network | |
US8065503B2 (en) | Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process | |
US7706275B2 (en) | Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by employing bandwidth shells at areas of overutilization | |
CN111756791A (zh) | 用于加速的功能即服务的网络设备负载平衡器的技术 | |
CN108028833A (zh) | 一种nas数据访问的方法、系统及相关设备 | |
CN101710904B (zh) | P2p流量优化方法及其系统 | |
US20220014478A1 (en) | Resource consumption control | |
US20170078207A1 (en) | Network prioritization based on node-level attributes | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
US20220078119A1 (en) | Network interface device with flow control capability | |
WO2022012576A1 (zh) | 路径规划方法、装置、路径规划设备及存储介质 | |
CN117157963A (zh) | 卸载到网络设备的可靠传输 | |
US20080222303A1 (en) | Latency hiding message passing protocol | |
CN114710467B (zh) | Ip地址存储方法、装置和硬件网关 | |
CN115834587A (zh) | 一种选择目标存储服务器的方法、装置及电子设备 | |
CN113328953A (zh) | 网络拥塞调整的方法、装置和存储介质 | |
CN113760559A (zh) | 一种双核通信方法和电子设备 | |
CN115729864A (zh) | 存储装置、电子装置以及电子装置的操作方法 | |
CN107113323B (zh) | 一种数据存储方法、装置和系统 | |
WO2014101502A1 (zh) | 基于内存芯片互连的内存访问处理方法、内存芯片及系统 | |
CN117278475A (zh) | 用于多节点系统的图数据通信方法、电子设备及存储介质 | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
CN115509644B (zh) | 算力卸载方法、装置、电子设备和存储介质 | |
US8549259B2 (en) | Performing a vector collective operation on a parallel computer having a plurality of compute nodes | |
US20230205418A1 (en) | Data processing system and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |