CN117155865A - 用于多节点系统的图数据通信方法、电子设备及存储介质 - Google Patents

用于多节点系统的图数据通信方法、电子设备及存储介质 Download PDF

Info

Publication number
CN117155865A
CN117155865A CN202311085777.8A CN202311085777A CN117155865A CN 117155865 A CN117155865 A CN 117155865A CN 202311085777 A CN202311085777 A CN 202311085777A CN 117155865 A CN117155865 A CN 117155865A
Authority
CN
China
Prior art keywords
node
data
data packet
data packets
vertex
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
Application number
CN202311085777.8A
Other languages
English (en)
Inventor
牟智骞
严明玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Processor Technology Innovation Center
Original Assignee
Shanghai Processor Technology Innovation Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Processor Technology Innovation Center filed Critical Shanghai Processor Technology Innovation Center
Priority to CN202311085777.8A priority Critical patent/CN117155865A/zh
Publication of CN117155865A publication Critical patent/CN117155865A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (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

用于多节点系统的图数据通信方法、电子设备及存储介质
技术领域
本披露一般涉及通信技术领域。更具体地,本披露涉及一种用于多节点系统的图数据通信方法、电子设备及存储介质。
背景技术
图神经网络具有强大的问题处理和感知能力,是信息高速发展的大数据时代亟需和极为重要的一种智能技术,其在诸如类脑科学、药物发现等重点科学领域得到了广泛应用。
随着各层级互联技术的发展,诸如社交网络、物联网等相关领域的图规模爆炸式增长。要在此类大规模的图数据上做运算,单个节点的存储和算力等资源难以负载,例如,存储容量不足以容纳整个图数据,单节点系统只能将大容量的外存当作交换区,但这会造成访存时间大幅增加。同理,图神经网络的运算量与图规模呈正相关,大规模的图数据导致计算量大幅增加,但单节点系统的计算能力有限,因此单节点系统的计算时间也会大幅增加。由此可见,面对规模爆炸式增长的图数据,单个节点难以在合理时间内完成任务,因此,多节点的运算系统成为了处理图数据的一种优选方案。
然而,在多节点系统中,各节点之间的数据通信是多节点协作的重要环节之一。由于多节点系统的网络传输涉及多个节点,因此,多节点系统的数据传输链路会形成复杂的传输网络。再者,图神经网络的特征向量较长,且会产生大规模的图数据,这就导致多节点系统在同一时刻会产生大量正在传输的数据,对于通信带宽的要求极高。
有鉴于此,亟需提供一种用于多节点系统的图数据通信方案,以便减少多节点系统在单位时间内所传输的数据量,进而降低对多节点系统通信带宽的要求。
发明内容
为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了用于多节点系统的图数据通信方案。
在第一方面中,本披露提供一种用于多节点系统的图数据通信方法包括:从当前节点以外接收数据包;响应于数据发送指令,检测接收到的所有数据包的目的节点;响应于所有数据包中存在至少两个数据包的目的节点与当前节点不一致,识别目的节点与当前节点不一致的数据包的尾顶点集合;以及响应于尾顶点集合之间存在至少一个相同子集,将存在相同子集的尾顶点集合所在的不同数据包进行归约,以生成归约数据包并发送。
在一些实施例中,其中数据包包括:目的节点的拓扑信息、归约信号、数据包生成节点的顶点特征向量以及数据包生成节点的尾顶点集合。
在一些实施例中,其中归约数据包包括:目的节点的拓扑信息、归约信号、数据包生成节点的顶点特征向量、数据包生成节点的尾顶点集合的子集以及特征向量区别信号。
在一些实施例中,其中将存在相同子集的尾顶点集合所在的不同数据包进行归约,以生成归约数据包包括:将不同数据包的顶点特征向量合并至归约数据包中;在归约数据包中添加特征向量区别信号,以区分不同数据包的顶点特征向量;修改归约数据包的目的节点;将归约数据包的尾顶点集合更新为相同子集;以及修改归约数据包的归约信号。
在一些实施例中,其中在检测接收到的所有数据包的目的节点之后,该方法还包括:响应于数据包的目的节点与当前节点一致,将数据包的副本转发至当前节点的顶点。
在一些实施例中,其中在识别目的节点与当前节点不一致的数据包的尾顶点集合之后,该方法还包括:响应于尾顶点集合之间不存在相同子集,将目的节点与当前节点不一致的数据包逐个转发至目的节点。
在一些实施例中,其中在从当前节点以外接收数据包之后,方法还包括:将接收的数据包保存至当前节点的片上内存;判断当前时钟周期是否为预设周期的整数倍或当前节点的片上内存占用是否达到预设占用比例;以及响应于当前时钟周期为预设周期的整数倍或当前节点的片上内存占用达到预设占用比例,生成数据发送指令。
在一些实施例中,当前节点为通信发起端时,该方法还包括:将图数据中的顶点分配至多节点系统中的节点,以生成每一节点的顶点集合和出边集合;基于当前节点的顶点集合及其出边集合形成当前节点的数据包;以及根据当前节点的数据包的拓扑信息和尾顶点集合,将当前节点的数据包发送至多节点系统中的另一节点。
在第二方面中,本披露提供一种电子设备包括:处理器;以及存储器,其存储有可执行的程序指令,当程序指令由处理器执行时,使得设备实现根据第一方面任意一项的方法。
在第三方面中,本披露提供一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现如第一方面任意一项的方法。
通过如上所提供的用于多节点系统的图数据通信方法,本披露实施例通过对节点接收到的数据包统一进行检测,从而筛选出需要转发至其他节点的数据包,再通过数据包中的尾顶点集合的信息,将同一目的地的不同数据包进行归约处理,从而将原本需要传输的多个数据包简化成一个归约数据包并发送。相较于传统的数据通信方式,利用归约后的数据包进行数据传输能够降低传输频次,从而减少冗余重复的数据传输。并且,归约处理能够从原本的数据包中抽取出当前链路所需数据,实现数据量精简化,降低了同一目的地的数据包的传输规模,由此,多节点系统对于通信带宽的要求大幅降低。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出了本披露一些实施例的用于多节点系统的图数据通信方法100的示例性流程图;
图2示出了本披露一些实施例的多节点系统的示意图;
图3示出了本披露一些实施例的用于图数据的数据包归约方法的示例性流程图;
图4示出了本披露一些实施例的用于多节点系统的图数据通信方法的示例性流程图;
图5示出了本披露一些实施例的数据发送指令生成方法的示例性流程图;
图6示出了本披露一些实施例的通信发起方法的示例性流程图;
图7示出了本披露实施例的电子设备的示例性结构框图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本披露的具体实施方式。
示例性应用场景
图神经网络具有强大的问题处理和感知能力,是信息高速发展的大数据时代亟需和极为重要的一种智能技术,其在诸如类脑科学、药物发现等重点科学领域得到了广泛应用。
图神经网络的主要执行过程可以分为两大阶段,其一为聚合阶段,其二为组合阶段。聚合阶段的执行行为与传统的图遍历应用相似,具体包括遍历整张图,对于每个顶点聚合其所有邻居顶点的特征向量,而组合阶段的执行行为则与传统神经网络应用相似,具体包括通过多层感知机来对每个顶点的特征向量进行转换和更新。由此可见,图神经网络兼备了传统图计算应用的不规则执行行为和传统神经网络的规则执行行为,呈现为一种复杂的混合执行特征。有鉴于此,传统通用处理器无法高效处理图神经网络应用,多节点的运算系统成为了处理图数据的一种优选方案。
在多节点系统中,各节点之间的数据通信是多节点协作的重要环节之一。但多节点协作过程涉及多个节点之间的数据传输,这就导致多节点系统的数据传输链路呈现复杂的网络状。再者,图神经网络的特征向量较长,且会产生大规模的图数据,这就导致多节点系统在同一时刻会产生大量正在传输的数据,进而导致通信带宽难以满足通信要求。
示例性应用方案
有鉴于此,本披露实施例提供了一种用于多节点系统的图数据通信方案,其通过将同一目的地的不同数据包进行归约处理,从而将原本传输的多个数据包简化成一个归约数据包并发送,能够缩减多节点系统中数据传输的频次以及单条链路上的数据包规模,从而降低对通信带宽的占用。
图1示出了本披露一些实施例的用于多节点系统的图数据通信方法100的示例性流程图。如图1所示,在步骤S101中,从当前节点以外接收数据包。在多节点系统中,节点之间的数据交互通常是将待传输的数据打包成一个数据包进行传输的,尤其是对于图数据这类规模较大且不规则的数据结构而言,需要通过打包的方式将矢量数据和其他结构的数据打包至一个数据包。
多节点系统中的节点可以理解为网络节点,节点可以是工作站、服务器、PC或打印机等设备。在多节点系统中,多个节点之间相互连接,可以进行数据互传。
图数据从数据结构上来看,可以视作点和边的集合G=(V,E),其中V是有穷非空的点集,v表示点,v∈V,v用于表示实体或实例,E是有穷的边集,e表示边,e∈E,边是点与点之间的连接线,e表示的是点与点之间的关系。为了便于与多节点系统中的节点进行区分,本披露将图数据中的点称作顶点。
图数据中的边可以分为有向边和无向边,对于一条有向边而言,其起点为头顶点,终点为尾顶点,对于头顶点而言,该有向边称为出边。
进一步地,在当前节点接收到另一节点发出的数据包后,当前节点会将数据包暂存在当前节点,直至当前接收到数据发送指令之后,再执行数据发送的动作。当前节点可选的一种发送动作可以参见以下步骤S102至步骤S105。
在步骤S102中,响应于数据发送指令,检测接收到的所有数据包的目的节点。在一些实施例中,数据包可以包括:目的节点的拓扑信息、归约信号、数据包生成节点的顶点特征向量以及数据包生成节点的尾顶点集合,其中,目的节点代表在数据传输路径上,该数据包的数据包生成节点的下一节点,即该数据包的目的地。
需要说明的是,由于图神经网络在聚合阶段需要对每个顶点聚合其所有邻居顶点的特征向量,而一条出边的头顶点即为该条出边的尾顶点的邻居顶点,由此可以明确数据包的一个传输方向为由头顶点向尾顶点传输,因此在本实施例中,目的节点可以基于数据包生成节点的出边集合中出边的尾顶点确定。
在本实施例的步骤S102中,通过检测接收到的数据包的目的节点,可以识别出该数据包是否为当前节点所需的数据包,或者说,识别当前节点是否为该数据包的目的地。
在步骤S103中,响应于所有数据包中存在至少两个数据包的目的节点与当前节点不一致,识别目的节点与当前节点不一致的数据包的尾顶点集合。在本实施例中,若存在2个及以上数据包的目的节点非当前节点,说明当前节点至少需要执行两次数据传输来将这些数据包转发给其他节点,那么此时可以考虑是否能够通过数据包的归约处理将数据包精简化成一个归约数据包,从而仅执行一次数据传输就完成数据交互,以达到缩减数据传输频次的效果。
在步骤S104中,响应于所述尾顶点集合之间存在至少一个相同子集,将存在相同子集的尾顶点集合所在的不同数据包进行归约,以生成归约数据包并发送。
在本实施例中,目的节点可以基于数据包生成节点的出边集合中出边的尾顶点确定,因此,尾顶点集合中的尾顶点则反映了数据包的目的地,其数量可以为一个或多个。倘若当前节点中不同的数据包的尾顶点集合之间存在相同的尾顶点,即尾顶点集合之间存在相同子集,说明这些不同的数据包之间具有至少一个相同的目的点,那么这些不同的数据包是可以通过一次数据传输发送至该目的地的。
当前节点在发送数据包之前,可以对满足上述情况的不同数据包进行归约处理,从不同数据包中抽取出当前链路所需数据,实现数据量精简化,降低当前链路上数据包的传输规模。
为了便于理解,本实施例以图2示出的多节点系统为例进行说明,图2示出了本披露一些实施例的多节点系统200的示意图。如图2所示,节点0包含有一个顶点0,节点0产生了一个数据包{节点0的拓扑信息,归约信号,S5={5},S6={6},顶点0的特征向量},其中节点0的尾顶点集合包括尾顶点集合S5和尾顶点集合S6,节点8包含有一个顶点8,节点8产生了一个数据包{节点8的拓扑信息,归约信号,S5={5},S6={6},顶点8的特征向量},其中节点8的尾顶点集合包括尾顶点集合S5和尾顶点集合S6
假设节点4分别从节点0和节点8接收到上述两个数据包,通过检测发现这两个数据包的目的节点均非当前的节点4,则可以继续识别这两个数据包的尾顶点集合,发现这两个数据包的尾顶点集合中存在相同子集,即尾顶点集合S5和尾顶点集合S6,说明这两个数据包都需要被送往节点5和节点6,因此可以对这两个数据包进行归约处理。
在一些实施例中,归约处理的具体执行步骤可以参见图3,图3示出了本披露一些实施例的用于图数据的数据包归约方法300的示例性流程图。可以理解,用于图数据的数据包归约方法是前述步骤S104中的一种具体实现,因此前文结合图1描述的特征可以类似地应用于此。
如图3所示,在步骤S301中,将不同数据包的顶点特征向量合并至归约数据包。仍以前文图2所示的多节点系统为例,由于聚合阶段的执行行为是对于每个顶点聚合其所有邻居顶点的特征向量,因此,需要将顶点0和顶点8的特征向量均保留下来,合并至归约数据包中,此时可以得到如下数据包:{节点0或节点8的拓扑信息,归约信号,S5={5},S6={6},顶点0和顶点8的特征向量}。
在步骤S302中,在归约数据包中添加特征向量区别信号,以区分不同数据包的顶点特征向量。在本实施例中,经过步骤S301的合并处理,归约数据包中包含有2个顶点特征向量,为了区分这两个顶点特征向量,需要在归约数据包中添加特征向量区别信号,以区分这两个顶点特征向量在数据包中的位置,此时可以得到如下数据包:{节点0或节点8的拓扑信息,归约信号,S5={5},S6={6},顶点0和顶点8的特征向量,特征向量区别信号}。
在步骤S303中,修改归约数据包的目的节点。在一些实施例中,可以在发送数据包之前检测当前的网络状况,根据每个节点的拥堵程度和/或节点距离从中选出一个节点作为目的节点。以图2所示情况为例,可以将归约数据包的目的节点修改成节点5,进而得到如下数据包:{节点5的拓扑信息,归约信号,S5={5},S6={6},顶点0和顶点8的特征向量,特征向量区别信号}。
需要说明的是,本实施例对于步骤S303的执行时序并没有严格的要求,例如,步骤S303可以在步骤S301和步骤S302之前执行,也可以与步骤S301或步骤S302并行,即上述关于步骤S303的执行时序的描述不构成对本披露的唯一限定。
在步骤S304中,将归约数据包的尾顶点集合更新为相同子集。在图2示出的多节点系统中,节点0和节点8的数据包中尾顶点集合即为二者的相同子集,因此在归约数据包中可以直接保留原本的尾顶点集合。倘若节点0的数据包为{节点0的拓扑信息,归约信号,S5={5},S6={6},S7={7},顶点0的特征向量},节点8的数据包为{节点8的拓扑信息,归约信号,S5={5},S6={6},顶点0的特征向量},则在步骤S304中,尾顶点集合S7需要从归约数据包的尾顶点集合中剔除。
需要说明的是,本实施例对于步骤S304的执行时序并没有严格的要求,例如,步骤S304可以在步骤S301、步骤S302和步骤S303之前执行,也可以与步骤S301、步骤S302或步骤S303并行,即上述关于步骤S304的执行时序的描述不构成对本披露的唯一限定。
在步骤S305中,修改归约数据包的归约信号。在本实施例中,归约信号用于指示数据包是否经过归约处理。在一些实施例中,归约信号可以用一位信号来表示,例如0代表未经过归约处理,1代表经过归约处理。
通过前文实施例示出的用于图数据的数据包归约方法,可以理解的是,在本披露的一些实施例中,归约数据包可以包括:目的节点的拓扑信息、归约信号、数据包生成节点的顶点特征向量、数据包生成节点的尾顶点集合的子集以及特征向量区别信号。
以上介绍了当前节点中的数据包需要通过归约处理来缩减数据传输规模的情况,在实际应用时,也存在无需执行或无法执行归约处理的情况,针对此类情况,本披露的一些实施例提供了另一些用于多节点系统的图数据通信方法。
图4示出了本披露一些实施例的用于多节点系统的图数据通信方法400的示例性流程图。如图4所示,在步骤S401中,从当前节点以外接收数据包。在本实施例中,步骤S401的具体实施方式与前文实施例中的步骤S101一致,此处不再展开赘述。
在步骤S402中,响应于数据发送指令,检测接收到的数据包的目的节点是否为当前节点。若是,说明该数据包是确认发送至当前节点的数据包,则相应执行步骤S403;若否,说明该数据包并非当前节点所需的数据包,则执行步骤S404,以判断是否能够对数据包进行归约处理。
在步骤S403中,将数据包的副本转发至当前节点的顶点。若数据包中的目的节点与当前节点一致,说明数据包已经被发送至目的地,则当前节点可以执行接收数据包的动作,即保存数据包的副本并将其交付至当前节点内的顶点。
在步骤S404中,判断目的节点与当前节点不一致的数据包的尾顶点集合中是否存在相同子集。若是,说明不同的数据包之间具有相同的目的地,则相应执行步骤S405;若否,说明这些数据包的目的地均不相同,则执行步骤S406。
在步骤S405中,将存在相同子集的尾顶点集合所在的不同数据包进行归约,以生成归约数据包并发送。在本实施例中,归约处理的具体实施方式已经在前文实施例中进行了详尽的说明,此处不再展开赘述。
在步骤S406中,将目的节点与当前节点不一致的数据包逐个转发至所述目的节点。如果当前节点中保存的所有数据包的尾顶点集合各不相同,说明无法执行归约处理,则当前节点将保存的所有数据包依次转发至其他节点。
根据前文各实施例中的描述,可以确定的是,当前节点在接收到数据发送指令之后,先对其保存的数据包进行归约处理的判断,再执行数据发送指令。在一些实施例中,数据发送指令可以周期性发送或者响应于一个触发条件而发送。
图5示出了本披露一些实施例的数据发送指令生成方法500的示例性流程图。如图5所示,在步骤S501中,从当前节点以外接收数据包。在本实施例中,步骤S501的具体实施方式与前文实施例中的步骤S101和步骤S401一致,此处不再展开赘述。
在步骤S502中,将接收的数据包保存至当前节点的片上内存。在接收到数据包后,当前节点先将数据包保存在指定的用于数据包存储的片上内存中,暂不处理,当当前节点接收到数据发送指令时,当前节点才读取该片上内存中的所有数据包并进行统一处理,从而减少数据传输的频次。
在步骤S503中,判断是否触发指令条件。若是,则执行步骤S504;若否,则返回步骤S501。
在本实施例中,指令条件可以包括:当前时钟周期是否为预设周期的整数倍或当前节点的片上内存占用是否达到预设占用比例。例如,设置预设周期为2000,或设置预设占用比例为80%,那么每过2000个周期或每当指定的片上内存占用达到80%时,当前节点就会读取其接收到的所有数据包,通过读取数据包的结构信息来决定对该数据包所执行的处理方式。进一步地,针对归约处理,每次最多可以归约的数据包数量可以由片上内存的大小以及网络带宽来决定。
在步骤S504中,生成数据发送指令。每当指令条件被触发,就会产生一个数据发送指令,指示当前节点读取数据包并判断其能否进行归约处理,具体的判断过程和归约处理过程已经在前文实施例中进行了详尽的说明,此处不再展开赘述。
通过设置指令条件,可以令节点在一个统一的时间点处理其接收到的数据包,相较于每接收到一个数据包就对其进行处理和传输,能够减少数据包的处理频次,便于对同一目的地的数据包进行归约处理,进而减少数据传输频次和单次传输的数据包规模,降低通信所占用的网络带宽。
在多节点系统中,多个节点相互连接,可以进行数据互传,因此节点不仅可以作为通信接收方来接收另一节点发出的数据包,也可以作为通信发起方来发出数据包。以上实施例介绍了节点作为通信接收方时的通信方法,下面结合图6对于节点作为通信发起方时的通信方法进行介绍。
图6示出了本披露一些实施例的通信发起方法600的示例性流程图。如图6所示,在步骤S601中,将图数据中的顶点分配至多节点系统中的节点,以生成每一节点的顶点集合和出边集合。在本实施例中,步骤S601可以将图数据中包含的多个顶点先分配至多节点系统中,对于每一节点,其可以分配到一个或若干个顶点,因此对于每一个节点而言可以形成属于自己的一个顶点集合。进一步地,遍历顶点集合中的每一顶点,可以从图数据中识别出以该顶点作为头顶点的出边,进而形成每一节点的出边集合,可以理解,该出边集合中的每一条出边的头顶点位于当前节点。
仍以图2示出的多节点系统作为示例,顶点0被分配至节点0,节点0的出边集合为{(0,5),(0,6)},顶点5被分配至节点5,顶点6被分配至节点6,顶点7被分配至节点7,节点7的出边集合为{(7,6)},顶点8被分配至节点8,节点8的出边集合为{(8,5),(8,6)},顶点9被分配至节点9,节点9的出边集合为{(9,5)}。
进一步地,顶点v被分配至节点后,还可以标记顶点v被分配到的节点序号为f(v),其中f(x)代表了顶点与节点之间的对应关系,具体表示顶点x被分配到的节点序号,其为一种隐函数。以图2中的节点0为例,其分配到顶点0,因此顶点0被分配的节点序号为f(0)=0。
更进一步地,将顶点分配至节点后,还可以遍历每个节点分配到的顶点的出边,以形成每个节点的出边集合,接着,对于出边集合中的每条出边,将其尾顶点u加入至编号为f(u)的尾顶点集合中,其中f(u)表示尾顶点集合编号以用于区分不同集合。以图2中的节点0为例,其出边集合为{(0,5),(0,6)},对应地,其尾顶点集合Sf(u)可以包括S5={5}和S6={6}。
在步骤S602中,基于当前节点的顶点集合及其出边集合形成当前节点的数据包。示例性地,当前节点的数据包的形成步骤包括:将当前节点中顶点的特征向量和尾顶点集合打包成数据包包体,接着,将目的节点的节点序号、拓扑信息和归约信号加入数据包包头,以形成当前节点的数据包。
需要说明的是,在确定目的节点时,当前节点需要对当前的网络状况进行检测,从而根据当前的网络状况选择一条链路来传输数据包。在确定该条链路之前,数据包中的目的节点可以暂时用当前节点的信息补全数据包的结构信息。以图2中的节点0为例,在节点0的路由逻辑选定节点5作为数据包中的目的节点之前,其数据包可以表示如下:{节点0的拓扑信息,归约信号,S5={5},S6={6},顶点0的特征向量}。类似地,节点8数据包可以表示如下:{节点8的拓扑信息,归约信号,S5={5},S6={6},顶点8的特征向量}。
进一步地,通过检测网络状况和节点距离之后,可以修改数据包中关于目的节点的信息,例如,节点0的路由逻辑根据网络状况和节点距离将目的节点确定为节点5之后,可以将节点0数据包修改为:{节点5的拓扑信息,归约信号,S5={5},S6={6},顶点0的特征向量}。
在步骤S603中,根据当前节点的数据包的拓扑信息和尾顶点集合,将当前节点的数据包发送至所述多节点系统中的另一节点。仍以图2的节点0和节点8为例,由于节点0和节点8的数据包都将被需送往节点5和节点6,因此节点0和节点8的数据包都发送到其共同的邻居节点4,以便于执行数据包的归约处理,减少冗余通信。
需要说明的是,节点4在接收到来自节点0和节点8的数据包后,可以利用前文任一实施例示出的方法来完成数据包的读取和处理,此处不再展开赘述。进一步需要说明的是,节点5至节点6作为通信接收方时,同样也可以通过图1所示的方法进行数据包的读取和处理,以及作为通信发起方时,通过图6示出的方法进行数据包的生成和发送。
综上,本披露实施例提供了一种用于多节点系统的图数据通信方法,其通过数据包中的尾顶点集合的信息,将同一目的地的不同数据包进行归约处理,从而将原本需要传输的多个数据包简化成一个归约数据包并发送。相较于传统的数据通信方式,不仅能够降低传输频次,从而减少冗余重复的数据传输,还能够缩减单次传输的数据包规模,从而降低多节点系统通信过程中对于网络带宽的要求。
与前述应用功能实现方法实施例相对应,本披露实施例中还提供了一种如图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所述的方法,其特征在于,其中所述数据包包括:目的节点的拓扑信息、归约信号、数据包生成节点的顶点特征向量以及所述数据包生成节点的尾顶点集合。
3.根据权利要求2所述的方法,其特征在于,其中所述归约数据包包括:目的节点的拓扑信息、归约信号、数据包生成节点的顶点特征向量、所述数据包生成节点的尾顶点集合的子集以及特征向量区别信号。
4.根据权利要求3所述的方法,其特征在于,其中将存在相同子集的尾顶点集合所在的不同数据包进行归约,以生成归约数据包包括:
将不同数据包的顶点特征向量合并至所述归约数据包中;
在所述归约数据包中添加所述特征向量区别信号,以区分不同数据包的顶点特征向量;
修改所述归约数据包的目的节点;
将所述归约数据包的尾顶点集合更新为所述相同子集;以及
修改所述归约数据包的归约信号。
5.根据权利要求1所述的方法,其特征在于,其中在检测接收到的所有数据包的目的节点之后,所述方法还包括:
响应于数据包的目的节点与当前节点一致,将所述数据包的副本转发至当前节点的顶点。
6.根据权利要求1所述的方法,其特征在于,其中在识别目的节点与当前节点不一致的数据包的尾顶点集合之后,所述方法还包括:
响应于所述尾顶点集合之间不存在相同子集,将目的节点与当前节点不一致的数据包逐个转发至所述目的节点。
7.根据权利要求1所述的方法,其特征在于,其中在从当前节点以外接收数据包之后,所述方法还包括:
将接收的数据包保存至当前节点的片上内存;
判断当前时钟周期是否为预设周期的整数倍或当前节点的片上内存占用是否达到预设占用比例;以及
响应于当前时钟周期为预设周期的整数倍或当前节点的片上内存占用达到预设占用比例,生成所述数据发送指令。
8.根据权利要求2所述的方法,其特征在于,当前节点为通信发起端时,所述方法还包括:
将图数据中的顶点分配至所述多节点系统中的节点,以生成每一节点的顶点集合和出边集合;
基于当前节点的顶点集合及其出边集合形成当前节点的数据包;以及
根据当前节点的数据包的拓扑信息和尾顶点集合,将当前节点的数据包发送至所述多节点系统中的另一节点。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,其存储有可执行的程序指令,当所述程序指令由所述处理器执行时,使得所述设备实现根据权利要求1-8任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现如权利要求1-8任意一项所述的方法。
CN202311085777.8A 2023-08-25 2023-08-25 用于多节点系统的图数据通信方法、电子设备及存储介质 Pending CN117155865A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311085777.8A CN117155865A (zh) 2023-08-25 2023-08-25 用于多节点系统的图数据通信方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311085777.8A CN117155865A (zh) 2023-08-25 2023-08-25 用于多节点系统的图数据通信方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117155865A true CN117155865A (zh) 2023-12-01

Family

ID=88907302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311085777.8A Pending CN117155865A (zh) 2023-08-25 2023-08-25 用于多节点系统的图数据通信方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117155865A (zh)

Similar Documents

Publication Publication Date Title
US8443287B2 (en) Interactive tool for visualizing performance data in real-time to enable adaptive performance optimization and feedback
US8527739B2 (en) Iterative process partner pairing scheme for global reduce operation
US20220014478A1 (en) Resource consumption control
CN108028833A (zh) 一种nas数据访问的方法、系统及相关设备
US20220222274A1 (en) Technologies for providing dynamic persistence of data in edge computing
CN110908600B (zh) 数据访问方法、装置和第一计算设备
US11082358B2 (en) Network path measurement method, apparatus, and system
US20080222303A1 (en) Latency hiding message passing protocol
CN105930545B (zh) 一种文件迁移的方法和装置
CN116915708A (zh) 路由数据包的方法、处理器及可读存储介质
CN104317716A (zh) 分布式节点间的数据传输方法及分布式节点设备
CN117135114A (zh) 多路径传输方法、装置、设备、可读存储介质及程序产品
CN113328953A (zh) 网络拥塞调整的方法、装置和存储介质
CN112506684A (zh) 一种跨进程快速传送大数据的方法、系统及存储介质
CN117155865A (zh) 用于多节点系统的图数据通信方法、电子设备及存储介质
CN115361332B (zh) 容错路由的处理方法及装置、处理器和电子设备
US20170111286A1 (en) Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
CN117278475A (zh) 用于多节点系统的图数据通信方法、电子设备及存储介质
CN114265716A (zh) 一种多进程间无锁队列的实现方法、装置、设备及介质
CN105900383A (zh) 通信系统、控制节点和通信方法
CN114567679B (zh) 数据传输方法及装置
US20170331716A1 (en) Active probing for troubleshooting links and devices
CN118118410B (zh) 多路径传输方法、相关装置和介质
JP5628397B2 (ja) ストレージ装置
CN116760850B (zh) 一种数据处理方法、装置、设备、介质及系统

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