CN114189518A - 应用于计算机集群的通信方法及通信装置 - Google Patents
应用于计算机集群的通信方法及通信装置 Download PDFInfo
- Publication number
- CN114189518A CN114189518A CN202111513894.0A CN202111513894A CN114189518A CN 114189518 A CN114189518 A CN 114189518A CN 202111513894 A CN202111513894 A CN 202111513894A CN 114189518 A CN114189518 A CN 114189518A
- Authority
- CN
- China
- Prior art keywords
- computer
- vertices
- vertex
- information
- source
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 127
- 238000004891 communication Methods 0.000 title claims abstract description 125
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 24
- 239000013598 vector Substances 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 208000003035 Pierre Robin syndrome Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种应用于计算机集群的通信方法及通信装置。计算机集群用于对图数据进行分布式计算,计算机集群包括第一计算机和第二计算机,第一计算机用于处理图数据中的第一顶点集合中的顶点,第二计算机用于处理图数据中的第二顶点集合中的顶点,第一顶点集合包括第一源顶点,第二顶点集合包括第一源顶点对应的第一目标顶点,所述方法应用于第一计算机。所述通信方法包括:生成第一源顶点的信息;根据预先记录的映射关系信息,确定第二计算机,第二计算机用于处理第一目标顶点的信息;向第二计算机发送第一通信消息,第一通信消息包含第一源顶点的信息,以便第二计算机根据第一源顶点的信息更新第一目标顶点的信息。
Description
本申请为申请号202111179194.2、申请日2021年10月11日、发明名称“应用于计算机集群的通信方法及通信装置”案件的分案申请。
技术领域
本公开涉及分布式图计算技术领域,具体涉及一种应用于计算机集群的通信方法及通信装置。
背景技术
在分布式图计算技术中,图数据可以被分割为多个部分,每个部分可以由计算机集群中的多个计算机分别处理。计算机集群中的多个计算机之间需要进行通信以实现数据交互,以便处理目标顶点的计算机可以获取源顶点的信息,从而更新目标顶点的信息。现有技术中,计算机通过将顶点的信息无差别的地向集群中的所有计算机广播实现通信。这会导致不必要的通信量,增加网络的压力。
发明内容
有鉴于此,本公开提供了一种应用于计算机集群的通信方法以及通信装置,以解决现有技术中分布式图计算系统中网络压力大的问题。
第一方面,本公开提供了一种应用于计算机集群的通信方法。所述计算机集群用于对图数据进行分布式计算,所述计算机集群包括第一计算机和第二计算机,所述第一计算机用于处理所述图数据中的第一顶点集合中的顶点,所述第二计算机用于处理所述图数据中的第二顶点集合中的顶点,所述第一顶点集合包括第一源顶点,所述第二顶点集合包括所述第一源顶点对应的第一目标顶点,所述方法应用于所述第一计算机,所述方法包括:生成所述第一源顶点的信息;根据预先记录的映射关系信息,确定第二计算机,所述第二计算机用于处理所述第一目标顶点的信息;向所述第二计算机发送第一通信消息,所述第一通信消息包含所述第一源顶点的信息,以便所述第二计算机根据所述第一源顶点的信息更新所述第一目标顶点的信息。
可选地,所述生成所述第一源顶点的信息包括:生成所述第一源顶点对应的图嵌入向量;删除所述第一源顶点对应的图嵌入向量中的部分或全部零元素,得到所述第一源顶点的信息。
可选地,所述第一计算机与所述计算机集群中的其他计算机基于循环调度的方式交互通信消息。
可选地,所述第一顶点集合还包括多个目标顶点,所述多个目标顶点分别对应多个源顶点,所述方法还包括:接收第二通信消息,所述第二通信消息包括所述多个源顶点的信息;利用多个线程并行地处理所述多个源顶点的信息。
可选地,所述计算机集群基于所述图数据执行图学习任务。
第二方面,本公开提供了一种通信装置。所述通信装置为计算机集群中的第一计算机,所述计算机集群用于对图数据进行分布式计算,所述计算机集群还包括第一计算机,所述第一计算机用于处理所述图数据中的第一顶点集合中的顶点,所述第二计算机用于处理所述图数据中的第二顶点集合中的顶点,所述第一顶点集合包括第一源顶点,所述第二顶点集合包括所述第一源顶点对应的第一目标顶点,所述通信装置包括:第一生成模块,用于生成所述第一源顶点的信息;确定模块,用于根据预先记录的映射关系信息,确定第二计算机,所述第二计算机用于处理所述第一目标顶点的信息;发送模块,用于向所述第二计算机发送第一通信消息,所述第一通信消息包含所述第一源顶点的信息,以便所述第二计算机根据所述第一源顶点的信息更新所述第一目标顶点的信息。
可选地,所述第一生成模块包括:第二生成模块,用于生成所述第一源顶点对应的图嵌入向量;删除模块,用于删除所述第一源顶点对应的图嵌入向量中的部分或全部零元素,得到所述第一源顶点的信息。
可选地,所述第一计算机与所述计算机集群中的其他计算机基于循环调度的方式交互通信消息。
可选地,所述第一顶点集合还包括多个目标顶点,所述多个目标顶点分别对应多个源顶点,所述通信装置还包括:接收模块,用于接收第二通信消息,所述第二通信消息包括所述多个源顶点的信息;处理模块,用于利用多个线程并行地处理所述多个源顶点的信息。
可选地,所述计算机集群基于所述图数据执行图学习任务。
第三方面,本公开提供了一种装置,所述装置包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现第一方面所述的方法。
本公开根据预先记录的映射关系信息,可以确定第一计算机处理的第一源顶点对应的第一目标顶点所在的第二计算机。因此,可以将第一源顶点的信息针对性地传输给第二计算机,而不需要将第一源顶点的信息无差别的发送给集群中的所有计算机,从而避免了集群中计算机通信过程中的无用通信,降低了通信的网络开销。
附图说明
图1为本公开实施例提供的一应用于计算机集群的通信方法的示意图。
图2为本公开实施例提供的一通信装置的结构示意图。
图3为本公开实施例提供的另一装置的结构示意图。
具体实施方式
下面将结合本公开实施例的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。
图是一种常见的数据结构。数据可以抽象为图的形式,从而形成图数据。图中的数据元素可以称为顶点(vertex),顶点也可以被称为节点或点。任意两个顶点之间可能存在关系,这种关系可以用边表示(edge)。由边相连的顶点互为邻居顶点。可以理解的是,图可以由顶点的有穷非空集合和顶点之间相连的边的集合组成。图数据可以包括图的拓扑结构、顶点和/或边的信息。
图可以表示为G=(V,E)。其中,G表示一个图,V表示图G中的所有顶点的集合,E表示图G中的边的集合。u和v可以表示V中任意两个顶点,即u,v∈V。任意两个顶点之间的边可以用e表示。例如顶点u和顶点v之间的边e可以表示为e=(u,v)。
边可以是有方向的,也可以是没方向的。有方向的边可以被称为有向边,没有方向的边可以被称为无向边。包括有向边的图可以被称为有向图,包括无向边的图可以被称为无向图。本公开可以应用于有向图,也可以应用于无向图。
有向边由源顶点(source,或简称src)指向目标顶点(destination,或简称dst)。对于源顶点,该有向边可以被称为出边。对于目标顶点,该有向边可以被称为入边。有向边可以通过(src,dst)表示。例如,边e=(u,v)可以表示边e为由顶点u指向顶点v的一条有向边。对于顶点u,边e为出边。对于顶点v,边e为入边。需要说明的是,源顶点可以被称为入点,目标顶点可以被称为出点。
无向边可以转化为两个不同方向的有向边。例如,边e可以为顶点u和顶点v之间的一条无向边。边e可以转化为两条有向边e1和e2。其中,边e1可以为由顶点u指向顶点v的一条边,表示为e1=(u,v)。边e2可以为由顶点v指向顶点u的一条边,表示为e2=(v,u)。
需要说明的是,一个顶点可以为源顶点,也可以为目标顶点,还可以同时为源顶点和目标顶点,这和与该顶点相连的边相关。以第一顶点为例,当第一顶点通过入边与其他顶点连接时,对于该入边,第一顶点为目标顶点。当第一顶点通过出边与其他顶点连接时,对于该出边,第一顶点为源顶点。当与第一顶点连接的多条边既有出边也有入边时,对于出边而言,第一顶点为源顶点,对于入边而言,第一顶点为目标顶点。
在不同场景下,将数据转化为图数据,通过对图数据的计算可以实现很多不同的应用。例如,基于图数据,可以实现金融风险评估、广告推荐、社交关系预测以及交通调度等应用。
以图数据用于金融信用评估为例。顶点可以是用户或金融机构等,顶点的信息可以包括用户信息、用户的信用评分或金融机构信息等数据。边可以表示用户之间的关系或用户与金融机构之间的关系,例如边可以表示好友关系或合作关系等。或者,边可以表示一个顶点对另一顶点的操作或行为,例如边可以表示:转账、借贷、消费或储蓄等。基于该图,可以通过某一用户已知的信用评分,评估或预测与该用户存在好友关系的另一用户的信用评分。或者,可以基于该图,通过用户转账或贷款等金融行为评估该用户的信用评分。
或者,以图数据用于广告推荐为例。顶点可以是用户、广告或商品等。顶点的信息可以包括用户的信息、商品介绍、广告点击率等。边可以是用户的行为,例如购买或点击等。基于该图,根据用户历史购买商品的记录或者点击广告的行为,可以预测用户点击某一广告的概率,从而针对不同用户实现个性化的广告推荐。
对于图数据的计算或处理方式有多种,本公开对此不作限制。例如,可以实现基于图的机器学习,以执行图学习任务。
图学习可以为基于图结构的神经网络学习。图学习可以包括图学习阶段和预测阶段。在学习阶段,可以使用训练数据对模型进行训练或学习。在预测阶段,可以基于训练好的模型和待预测数据,得到预测结果。
常见的应用于图学习的神经网络包括:图卷积神经网络(graph convolutionalnetworks,GCN)以及图注意力网络(graph attention network,GAT)等。GCN的对象是图数据,与卷积神经网络(convolutional neural network,CNN)类似。GAT可以通过自注意力机制(self-attention)对邻居节点进行聚合,实现了对不同邻居的权值自适应匹配,从而可以提高模型的准确率。
在针对图数据进行计算的过程中,可以使用图嵌入(embedding)向量对图进行表示。例如,在图学习中,可以通过embedding实现顶点或边的表示或嵌入。
图嵌入向量可以将顶点或边的信息由离散变量转化为连续变量。以图中顶点为广告为例,图嵌入向量可以将广告的内容或主题等离散变量表示为连续的向量。
结合上述图数据的应用,可以理解的是,在针对图进行计算时,可以根据源顶点的信息更新目标顶点的信息。以图学习为例,GCN或GAT可以通过收集邻居顶点的图嵌入向量更新目标顶点的图嵌入向量。
随着技术的发展,数据的规模越来越大。对于大数据而言,如果将大规模的数据抽象为图,图数据会包括海量的顶点和边。一些图数据的顶点或边的数量甚至达到了数亿个。处理海量的数据需要使用极大的资源来支持。针对该情况,可以使用计算机集群处理海量数据。
计算机集群可以包括多台计算机(也可以被称为节点),可以用于对图数据进行分布式计算。在预处理阶段,图数据中可以被分割为多个部分。集群中的多台计算机可以分别计算图数据的多个部分。图的顶点之间可以通过边传递顶点的信息。因此,数据可以通过边在不同的计算机之间进行交互(包括发送或/和接收),从而实现计算机间的通信。当使用计算机集群对图数据进行分布式处理时,需要考虑分布式计算对中央处理器(centralprocessing unit,CPU)计算、网络通信等方面的影响。
由上文可知,图可以根据源顶点的信息更新目标顶点的信息。因此,在集群进行预处理时,可以将目标顶点的入边(即源顶点的出边)与目标顶点分割至同一计算机上,使得目标顶点可以通过这条边接收源顶点的信息。但是,这会导致处理源顶点的计算机没有源顶点的出边的信息。由于没有出边的信息,处理源顶点的计算机无法获知对应的目标顶点在那个计算机上更新。因此,处理源顶点的计算机需要无差别地向所有计算机发送源顶点的信息。
以现有的分布式图计算系统Gemini为例。Gemini可以通过推(pull)或拉(push)模式传递消息。在pull或push模式中,Gemini会将顶点的消息无差别地发送给所有计算机。
实际上,并不是所有的计算机都需要顶点的信息。当计算机需要通过该顶点更新对应的目标顶点时,该计算机才需要该顶点的信息。因此,将顶点的消息无差别地发送给所有的计算机,会造成极大的无用通信以及网络开销。
图1为本公开实施例提出的一种应用于计算机集群的通信方法,以解决图计算过程中存在大量的无用通信以及网络开销大的问题。
该方法适用于计算机集群中第一计算机。第一计算机可以为计算机集群中的任意一个计算机。计算机集群还可以包括第二计算机。其中,计算机集群用于对图数据进行分布式计算。图数据包括第一顶点集和第二顶点集。第一计算机用于处理图数据的第一顶点集中的顶点。第二计算机用于处理图数据的第一顶点集中的顶点。其中,第一顶点集包括第一源顶点,第二顶点集包括第一目标顶点。可以理解的是,图数据可以被分割为多个顶点集,第一顶点集和第二顶点集为多个顶点集中任意两个。
图1所示的应用于计算机集群的通信方法包括步骤S110~S130。
步骤S110,生成第一源顶点的信息。
生成顶点的信息可以为通过图嵌入向量表示顶点。或者,生成顶点的信息可以为更新顶点的信息。例如,第一源顶点可以是离散的数据,第一计算机将第一源顶点表示为图嵌入向量,以生成第一源顶点的信息。或者,第一源顶点可以为其他顶点对应的目标顶点,第一计算机可以根据第一源顶点对应的源顶点的信息,更新第一源顶点的信息。
第一源顶点可以为集群中的其他计算机需要的顶点。例如,第一源顶点对应的第一目标顶点由第二计算机处理,则第二计算机需要第一源顶点的信息。
步骤S120,根据预先记录的映射关系信息,确定第二计算机。
映射关系信息可以用于指示图数据中的顶点与集群中计算机之间的映射关系。根据映射关系可以确定集群中哪个或哪些计算机需要该顶点的信息。例如,映射关系可以包括顶点以及有其出边的计算机的关系。
以第一源顶点为例,可以根据映射关系信息获取需要第一源顶点的计算机。例如,第二计算机用于处理第一源顶点对应的第一目标顶点,则第二计算机为需要第一顶点的计算机。集群中的多个计算机均可以需要第一顶点的信息,则第二计算机可以为多个计算机中的任意一个。
可以理解的是,第一计算机处理的第一顶点集合中的多个顶点均可以为源顶点,对于多个源顶点均可以进行步骤S120,从而确定与多个源顶点分别有映射关系计算机。
本公开不限制映射关系信息的记录方式。例如,映射关系信息可以以列表形式记录。记录映射关系的列表可以被称为筛选列表(filter list)。集群中的每台计算机均可以构造和/或存储其他计算机的筛选列表。以第一计算机为例,当第一计算机处理的第一源顶点对应的第一目标顶点被分割到第二计算机时,可以将第一源顶点记录在第二计算机的筛选列表中。
由上文可知,出边可以和目标顶点在同一计算机上处理,因此,第二计算机需要的顶点列表也可以记录被分割到第二计算机中的出边所对应的源顶点。例如,第一计算机处理顶点a、b、c和d等顶点,其中,顶点a和c的出边被分割到了第二计算机,则第二计算机的筛选列表可以包括顶点a和顶点c。一般情况下,第一计算机处理的第一顶点集中,只有一部分顶点的出边被分割到了第二计算机,因此,筛选列表中的顶点数量可以少于第一顶点集的顶点数。
预先记录指的是在步骤S130之前,将映射关系存储或记录于映射关系信息中。例如,集群中的计算机可以在预处理阶段计算并记录映射关系。例如,在预处理分割图数据的过程中,集群可以将第一源顶点分割到第一计算机,将第一源顶点对应的第一目标顶点分割到第二计算机,同时将第一源顶点以及第二计算机的信息发送至第一计算机,以供第一计算机记录第一源顶点和第二计算机的映射关系。
步骤S130,向第二计算机发送第一通信消息。
通信消息可以为集群中计算机进行交互时发送的消息,以用于集群中的计算机获取其他计算机计算的顶点的信息。
第一计算机可以向第二计算机发送一条或多条通信消息。例如,第一计算机可以向第二计算机发送第一通信消息,还可以向第二计算机发送第二通信消息。或者,在图学习过程中,需要多次迭代更新图数据,在每一次迭代时,第一计算机均可以向第二计算机发送第一通信消息。
每条通信消息可以包含一个或多个顶点的信息。例如,第一通信消息可以包含第一源顶点的信息。或者,除了第一源顶点的信息,第一通信消息还可以包含其他源顶点的信息。
第二计算机可以接收第一计算机发送的通信消息。例如,第二计算机可以接收第一计算机发送的第一通信消息。第二计算机接收到第一计算机发送的通信消息后,可以向第一计算机反馈接收结果。例如,如果接收失败,第二计算机可以向第一计算机反馈接收失败的接收结果,第一计算机可以重新发送通信消息。
第二计算机通过接收到通信消息,即可根据通信消息中的顶点的信息更新顶点对应的目标顶点的信息。例如,第二计算机可以通过第一通信消息中的第一源顶点的信息更新第一目标顶点的信息。
由步骤S120可以通过映射关系确定第二计算机是否需要第一源顶点的信息,从而在步骤S130可以有针对性地向第二计算机发送第一源顶点的信息。例如,第一计算机可以根据筛选列表筛选向第二计算机发送顶点的信息,从而可以仅向第二计算机发送筛选列表中的顶点的信息。
可以理解的是,当第二计算机中不包括第一计算机处理的顶点对应的目标顶点时,可以不向第二计算机发送通信消息,或者通信消息中不包含顶点的信息。
本公开有针对性地将顶点的信息传递给处理对应的目标顶点的计算机。并非将顶点的信息无差别地发送给集群中的所有的计算机。因此,避免了集群中计算机通信过程中的无用通信,降低了通信的网络开销。
可选地,图1所示的方法中步骤S110可以包括步骤:生成所述第一源顶点对应的图嵌入向量。因此,向第二计算机发送的第一通信消息中可以包括第一源顶点对应的图嵌入向量。
对图嵌入向量进行处理时,一些算子,例如ReLU或dropout,会将图嵌入向量中的一些信息置0,从而使得图嵌入向量中存在很多零元素(简称零元),进而导致第一通信消息中也会包括大量的零元。当传输通信消息时,这些零元会占用一定的资源,增加网络的压力。
针对上述问题,本公开提供的方法的步骤S110还可以包括:删除所述第一源顶点对应的图嵌入向量中的部分或全部零元素,得到所述第一源顶点的信息。
基于上述步骤,本公开仅保留了通信消息中非零的数据,实现了通信消息的压缩,从而可以减少传输的数据量,缓解了网络压力,增加了图数据的处理效率。
如上文所述,集群中的计算机可以通过通信消息实现通信。当第一计算机向第二计算机发送第一通信消息之后,需要接收第二计算机的回复消息,以确定第二计算机确实是否收到了第一通信消息。当集群中的多个计算机同时向第二计算机发送通信消息时,第二计算机需要逐一回复发送通信消息的计算机。这可能导致多个计算机同时等待第二计算机的回复消息,从而降低通信效率,进而降低了计算图数据的效率。
为解决上述问题,本公开提出第一计算机与计算机集群中的其他计算机基于循环调度(round-robin)的方式交互通信消息。其中,交互可以指发送和/或接收。例如,第一计算机基于round-robin的方式向集群中的其他计算机发送通信信息。对应的,对于接收通信消息的计算机,可以按照反向的round-robin顺序接收通信消息。或者,第一计算机基于round-robin的方式从集群中的其他计算机接收通信信息。
可以理解的是,集群中的多台计算机均可以使用round-robin的方式向其他计算机发送通信消息。多台计算机在接收通信消息时,使用反向round-robin顺序接收其他计算机发送的通信消息。多台计算机循环发送的起始位置可以不同,以使多台计算机不会同时向同一计算机发送通信消息,进而避免所有计算机同时等待同一计算机的消息。
以集群中包括4台计算机为例,说明集群中的计算机按照round-robin方式交互通信信息的过程。4台计算机的ID可以分别为1、2、3和4。每台计算机向其他计算机发送和/或通信消息的顺序可以如表1所示。
表1
对于发送顺序,计算机1可以按照计算机2,计算机3,计算机4的顺序依次循环向3台计算机发送通信消息。类似地,计算机2、计算机3以及计算机4按照表1所示的顺序向其他计算机发送通信消息。对于接收顺序,与发送顺序对应。例如,计算机1可以按照计算机4,计算机3,计算机2的顺序循环接收这3台计算机的通信信息。
按照表1所示的顺序,集群中的多台计算机可以同时向不同的计算机发送通信消息。也就是说,多台计算机不会同时向同一台计算机发送通信消息。
计算机接收通信消息时,可以接收多个源顶点的信息。例如,以第一计算机处理的第一顶点集合为例,第一顶点集合中可以包括多个目标顶点。多个目标顶点对应多个源顶点。第一计算机可以接收第二通信消息。其中,第二通信消息包括多个源顶点的信息。
计算机可以将接收到的多个源顶点的信息分装为多个批次(batch)。计算机可以基于多线程,对多个批次并行处理,从而更新目标顶点的信息,以提高计算效率。
另外,基于上述步骤,不同目标顶点的多个源顶点的信息被分装在不同的批次中,进行并行处理。也就是说,同一目标顶点的多个源顶点可以被分装在同一批次中。这使得同一目标顶点的多个源顶点不会同时更新目标顶点,因此不会引入竞争。例如,目标顶点u对应的源顶点v1和v2均被分装在batch1。在并行处理batch1和batch2时,不会出现目标顶点u同时根据源顶点v1和源顶点v2更新数据,从而不会引入竞争。
计算机集群中的计算机接收顶点的信息时,可以等待所有邻居点的信息收集齐全之后再进行计算。但是,这会增加不同计算机进行信息同步的时间开销,也会导致需要较大的内存空间来存放邻居点的信息。当计算机的内存有限时,可以使用计算机上的外存资源以作为内存的拓展。例如,可以将通信消息存放到外存中(也可以称为落盘),需要使用时将外存的通信消息读入内存,这会导致内外存之间的输入/输出(input/output,I/O)开销的增加。因此,在分布式外存场景中,需要同时考虑内外存I/O、网络通信以及CPU计算等瓶颈。
针对上述问题,本公开提出的方法可以对通信消息进行实时使用。计算机可以接收一部分顶点的信息后就对这部分顶点的信息进行处理。可选的,计算机可以使用中间结果对部分信息的处理进行记录。基于该方法,计算机不需要等待顶点所有邻居顶点的信息全部到齐后,才开始该顶点的更新。该方法节省了等待通信消息的时间开销,同时不需要将通信消息存放到外存中,不会罗盘增加内外存I/O的开销。
需要说明的是,本公开所述的计算机可以是具有计算功能的计算设备,例如服务器。
上文结合图1,详细描述了本公开的方法实施例,下面结合图2至图3,详细描述本公开的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图2是本公开实施例提供的一通信装置200的示意性结构图。通信装置为计算机集群中的第一计算机,所述计算机集群用于对图数据进行分布式计算,所述计算机集群还包括第一计算机,所述第一计算机用于处理所述图数据中的第一顶点集合中的顶点,所述第二计算机用于处理所述图数据中的第二顶点集合中的顶点,所述第一顶点集合包括第一源顶点,所述第二顶点集合包括所述第一源顶点对应的第一目标顶点。该通信装置200可以包括:第一生成模块210、确定模块220以及发送模块230.
第一生成模块210用于生成所述第一源顶点的信息。
确定模块220用于根据预先记录的映射关系信息,确定第二计算机,所述第二计算机用于处理所述第一目标顶点的信息。
发送模块230用于向所述第二计算机发送第一通信消息,所述第一通信消息包含所述第一源顶点的信息,以便所述第二计算机根据所述第一源顶点的信息更新所述第一目标顶点的信息。
可选地,所述第一生成模块210可以包括:第二生成模块,用于生成所述第一源顶点对应的图嵌入向量;删除模块,用于删除所述第一源顶点对应的图嵌入向量中的部分或全部零元素,得到所述第一源顶点的信息。
可选地,所述第一计算机与所述计算机集群中的其他计算机基于循环调度的方式交互通信消息。
可选地,所述第一顶点集合还包括多个目标顶点,所述多个目标顶点分别对应多个源顶点,所述通信装置200还包括:接收模块,用于接收第二通信消息,所述第二通信消息包括所述多个源顶点的信息;处理模块,用于利用多个线程并行地处理所述多个源顶点的信息。
可选地,所述计算机集群基于所述图数据执行图学习任务。
图3是本公开又一实施例提供的装置结构示意图。该装置300例如可以是具有计算功能的计算设备。比如,装置300可以是服务器。装置300可以包括存储器310和处理器320。存储器310可用于存储可执行代码。存储器310还可用于存储图数据。处理器320可用于执行所述存储器310中存储的可执行代码,以实现前文描述的各个方法中的步骤。在一些实施例中,该装置300还可以包括网络接口330,处理器320与外部设备的数据交换可以通过该网络接口330实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换等,均应包含在本公开的保护范围之内。
Claims (11)
1.一种应用于计算机集群的通信方法,所述计算机集群用于对图数据进行分布式计算,所述计算机集群包括第一计算机和第二计算机,所述第一计算机用于处理所述图数据中的第一顶点集合中的顶点,所述第二计算机用于处理所述图数据中的第二顶点集合中的顶点,所述第一顶点集合包括第一源顶点,所述第二顶点集合包括所述第一源顶点对应的第一目标顶点,所述方法应用于所述第一计算机,
所述方法包括:
生成所述第一源顶点的信息;
根据预先记录的映射关系信息,确定第二计算机,所述映射关系包括所述第一源顶点和有所述第一源顶点出边的计算机的关系,所述第二计算机用于处理所述第一目标顶点的信息;
向所述第二计算机发送第一通信消息,所述第一通信消息包含所述第一源顶点的信息,以便所述第二计算机根据所述第一源顶点的信息更新所述第一目标顶点的信息。
2.根据权利要求1所述的方法,所述生成所述第一源顶点的信息包括:
生成所述第一源顶点对应的图嵌入向量;
删除所述第一源顶点对应的图嵌入向量中的部分或全部零元素,得到所述第一源顶点的信息。
3.根据权利要求1所述的方法,所述第一计算机与所述计算机集群中的其他计算机基于循环调度的方式交互通信消息。
4.根据权利要求1所述的方法,所述第一顶点集合还包括多个目标顶点,所述多个目标顶点分别对应多个源顶点,
所述方法还包括:
接收第二通信消息,所述第二通信消息包括所述多个源顶点的信息;
利用多个线程并行地处理所述多个源顶点的信息。
5.根据权利要求1-4中任一项所述的方法,所述计算机集群基于所述图数据执行图学习任务。
6.一种通信装置,所述通信装置为计算机集群中的第一计算机,所述计算机集群用于对图数据进行分布式计算,所述计算机集群还包括第一计算机,所述第一计算机用于处理所述图数据中的第一顶点集合中的顶点,所述第二计算机用于处理所述图数据中的第二顶点集合中的顶点,所述第一顶点集合包括第一源顶点,所述第二顶点集合包括所述第一源顶点对应的第一目标顶点,所述通信装置包括:
第一生成模块,用于生成所述第一源顶点的信息;
确定模块,用于根据预先记录的映射关系信息,确定第二计算机,所述映射关系包括所述第一源顶点和有所述第一源顶点出边的计算机的关系,所述第二计算机用于处理所述第一目标顶点的信息;
发送模块,用于向所述第二计算机发送第一通信消息,所述第一通信消息包含所述第一源顶点的信息,以便所述第二计算机根据所述第一源顶点的信息更新所述第一目标顶点的信息。
7.根据权利要求6所述的通信装置,所述第一生成模块包括:
第二生成模块,用于生成所述第一源顶点对应的图嵌入向量;
删除模块,用于删除所述第一源顶点对应的图嵌入向量中的部分或全部零元素,得到所述第一源顶点的信息。
8.根据权利要求6所述的通信装置,所述第一计算机与所述计算机集群中的其他计算机基于循环调度的方式交互通信消息。
9.根据权利要求6所述的通信装置,所述第一顶点集合还包括多个目标顶点,所述多个目标顶点分别对应多个源顶点,
所述通信装置还包括:
接收模块,用于接收第二通信消息,所述第二通信消息包括所述多个源顶点的信息;
处理模块,用于利用多个线程并行地处理所述多个源顶点的信息。
10.根据权利要求6-9中任一项所述的通信装置,所述计算机集群基于所述图数据执行图学习任务。
11.一种装置,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111513894.0A CN114189518A (zh) | 2021-10-11 | 2021-10-11 | 应用于计算机集群的通信方法及通信装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111513894.0A CN114189518A (zh) | 2021-10-11 | 2021-10-11 | 应用于计算机集群的通信方法及通信装置 |
CN202111179194.2A CN113630476B (zh) | 2021-10-11 | 2021-10-11 | 应用于计算机集群的通信方法及通信装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111179194.2A Division CN113630476B (zh) | 2021-10-11 | 2021-10-11 | 应用于计算机集群的通信方法及通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114189518A true CN114189518A (zh) | 2022-03-15 |
Family
ID=78390834
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111179194.2A Active CN113630476B (zh) | 2021-10-11 | 2021-10-11 | 应用于计算机集群的通信方法及通信装置 |
CN202111513894.0A Pending CN114189518A (zh) | 2021-10-11 | 2021-10-11 | 应用于计算机集群的通信方法及通信装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111179194.2A Active CN113630476B (zh) | 2021-10-11 | 2021-10-11 | 应用于计算机集群的通信方法及通信装置 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN113630476B (zh) |
WO (1) | WO2023061329A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023061329A1 (zh) * | 2021-10-11 | 2023-04-20 | 支付宝(杭州)信息技术有限公司 | 应用于计算机集群的通信方法及通信装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140320497A1 (en) * | 2013-04-29 | 2014-10-30 | Microsoft Corporation | Graph partitioning for massive scale graphs |
US20150161228A1 (en) * | 2013-12-06 | 2015-06-11 | Palo Alto Research Center Incorporated | Efficient detection of information of interest using mode-based graph clustering |
CN111177486A (zh) * | 2019-12-19 | 2020-05-19 | 四川蜀天梦图数据科技有限公司 | 一种分布式图计算过程中的消息传递方法和装置 |
CN111694834A (zh) * | 2019-03-15 | 2020-09-22 | 杭州海康威视数字技术股份有限公司 | 图数据的入库方法、装置、设备及可读存储介质 |
CN111737540A (zh) * | 2020-05-27 | 2020-10-02 | 中国科学院计算技术研究所 | 一种应用于分布式计算节点集群的图数据处理方法和介质 |
CN111858527A (zh) * | 2020-06-22 | 2020-10-30 | 清华大学深圳国际研究生院 | 一种日志数据建模分析方法及计算机可读存储介质 |
CN112114984A (zh) * | 2020-09-17 | 2020-12-22 | 清华大学 | 图数据处理方法及装置 |
CN112528090A (zh) * | 2020-12-11 | 2021-03-19 | 北京百度网讯科技有限公司 | 图数据的存储方法和存储装置 |
CN113630476A (zh) * | 2021-10-11 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 应用于计算机集群的通信方法及通信装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996536B2 (en) * | 2010-09-20 | 2015-03-31 | Linkedin Corporation | Facet-based filtering of social network update data |
US9495477B1 (en) * | 2011-04-20 | 2016-11-15 | Google Inc. | Data storage in a graph processing system |
EP2731023B1 (en) * | 2012-11-12 | 2015-03-25 | Software AG | Method and system for processing graph queries |
US9940472B2 (en) * | 2015-01-08 | 2018-04-10 | International Business Machines Corporation | Edge access control in querying facts stored in graph databases |
US10593080B2 (en) * | 2017-04-27 | 2020-03-17 | Daegu Gyeongbuk Institute Of Science And Technology | Graph generating method and apparatus |
US10534657B2 (en) * | 2017-05-30 | 2020-01-14 | Oracle International Corporation | Distributed graph processing system that adopts a faster data loading technique that requires low degree of communication |
CN110737659A (zh) * | 2019-09-06 | 2020-01-31 | 平安科技(深圳)有限公司 | 图数据存储和查询方法、装置及计算机可读存储介质 |
-
2021
- 2021-10-11 CN CN202111179194.2A patent/CN113630476B/zh active Active
- 2021-10-11 CN CN202111513894.0A patent/CN114189518A/zh active Pending
-
2022
- 2022-10-10 WO PCT/CN2022/124372 patent/WO2023061329A1/zh unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140320497A1 (en) * | 2013-04-29 | 2014-10-30 | Microsoft Corporation | Graph partitioning for massive scale graphs |
US20150161228A1 (en) * | 2013-12-06 | 2015-06-11 | Palo Alto Research Center Incorporated | Efficient detection of information of interest using mode-based graph clustering |
CN111694834A (zh) * | 2019-03-15 | 2020-09-22 | 杭州海康威视数字技术股份有限公司 | 图数据的入库方法、装置、设备及可读存储介质 |
CN111177486A (zh) * | 2019-12-19 | 2020-05-19 | 四川蜀天梦图数据科技有限公司 | 一种分布式图计算过程中的消息传递方法和装置 |
CN111737540A (zh) * | 2020-05-27 | 2020-10-02 | 中国科学院计算技术研究所 | 一种应用于分布式计算节点集群的图数据处理方法和介质 |
CN111858527A (zh) * | 2020-06-22 | 2020-10-30 | 清华大学深圳国际研究生院 | 一种日志数据建模分析方法及计算机可读存储介质 |
CN112114984A (zh) * | 2020-09-17 | 2020-12-22 | 清华大学 | 图数据处理方法及装置 |
CN112528090A (zh) * | 2020-12-11 | 2021-03-19 | 北京百度网讯科技有限公司 | 图数据的存储方法和存储装置 |
CN113630476A (zh) * | 2021-10-11 | 2021-11-09 | 支付宝(杭州)信息技术有限公司 | 应用于计算机集群的通信方法及通信装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023061329A1 (zh) * | 2021-10-11 | 2023-04-20 | 支付宝(杭州)信息技术有限公司 | 应用于计算机集群的通信方法及通信装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113630476A (zh) | 2021-11-09 |
CN113630476B (zh) | 2021-12-31 |
WO2023061329A1 (zh) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11822574B2 (en) | System and method for providing an artificially-intelligent graph database | |
WO2019090163A1 (en) | Self-adaptive system and method for large scale online machine learning computations | |
CN110866040B (zh) | 用户画像生成方法、装置和系统 | |
CN111563267A (zh) | 用于联邦特征工程数据处理的方法和装置 | |
US11789935B2 (en) | Data aggregation with microservices | |
US20220385739A1 (en) | Method and apparatus for generating prediction information, electronic device, and computer readable medium | |
WO2023040612A1 (zh) | 用于处理订单的方法和装置 | |
CN111177433A (zh) | 用于并行处理信息的方法和装置 | |
CN113630476B (zh) | 应用于计算机集群的通信方法及通信装置 | |
US11567814B2 (en) | Message stream processor microbatching | |
CN113761350A (zh) | 一种数据推荐方法、相关装置和数据推荐系统 | |
CN112182111A (zh) | 基于区块链的分布式系统分层处理方法和电子设备 | |
CN111767953A (zh) | 用于训练物品编码模型的方法和装置 | |
CN111435381A (zh) | 请求分发方法和装置 | |
US11593406B2 (en) | Dynamic search parameter modification | |
CN115543298A (zh) | 基于规则执行器的业务处理方法、装置、设备及存储介质 | |
EP4105869A1 (en) | Method and apparatus for outputting information | |
US10819622B2 (en) | Batch checkpointing for inter-stream messaging system | |
CN112036418A (zh) | 用于提取用户特征的方法和装置 | |
CN111784377A (zh) | 用于生成信息的方法和装置 | |
CN112311833B (zh) | 数据更新方法和装置 | |
CN110889040B (zh) | 用于推送信息的方法和装置 | |
US20240098036A1 (en) | Staggered payload relayer for pipelining digital payloads across network services | |
CN115705326A (zh) | 实时数据存储方法、装置、终端设备 | |
CN113568936A (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 |