WO2022016833A1 - Graph computing method and apparatus, and device and storage medium - Google Patents

Graph computing method and apparatus, and device and storage medium Download PDF

Info

Publication number
WO2022016833A1
WO2022016833A1 PCT/CN2021/071205 CN2021071205W WO2022016833A1 WO 2022016833 A1 WO2022016833 A1 WO 2022016833A1 CN 2021071205 W CN2021071205 W CN 2021071205W WO 2022016833 A1 WO2022016833 A1 WO 2022016833A1
Authority
WO
WIPO (PCT)
Prior art keywords
graph
computing
computed
processing node
subgraphs
Prior art date
Application number
PCT/CN2021/071205
Other languages
French (fr)
Chinese (zh)
Inventor
胡克坤
董刚
赵雅倩
Original Assignee
苏州浪潮智能科技有限公司
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 苏州浪潮智能科技有限公司 filed Critical 苏州浪潮智能科技有限公司
Publication of WO2022016833A1 publication Critical patent/WO2022016833A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Definitions

  • the present application relates to the field of cloud computing, and in particular, to a graph computing method, apparatus, device and storage medium.
  • the present application provides a graph calculation method, including:
  • calculating the total task load corresponding to the graph to be calculated includes:
  • the sample task load of each combination relationship is counted to obtain the model data set.
  • the graph obtaining module is used to obtain the graph to be computed
  • the expected task load calculation module is used to calculate the task load expectation of each processing node according to the total task load and the proportion of computing resources;
  • the core of the present application is to provide a graph computing method to relatively ensure the overall efficiency of graph computing performed by multiple processing nodes.
  • Step S11 Obtain the graph to be calculated.
  • the graph to be computed obtained in this step refers to the graph that each processing node needs to perform distributed graph computation in subsequent steps, which can be considered as a data model with specific data content recorded.
  • the execution sequence between step S10 and step S11 is not fixed. Step S10 and step S11 may also be performed simultaneously, which should be determined according to the actual situation, which is not specifically limited here.
  • Step S12 Divide the graph to be computed into subgraphs to be computed of each processing node based on the ratio of computing resources.
  • the ratio between the task loads of the subgraphs to be operated that are allocated by each processing node is consistent with the ratio of computing resources.
  • this step further divides the to-be-operated graph into the to-be-operated subgraphs of each processing node according to the computing resource ratio.
  • Step S13 Allocate each subgraph to be computed to a corresponding processing node, so that each processing node can perform graph computing operations in parallel.
  • Subgraphs to be operated on, until all of the graphs to be operated on are divided.
  • This embodiment can further ensure the overall execution efficiency of the process of dividing the graph to be calculated into subgraphs to be calculated for each processing node based on the ratio of computing resources, thereby relatively ensuring the overall efficiency of the graph calculation process.
  • an embodiment of the present application discloses a graph computing method, including:
  • Step S20 Counting the computing resource ratio among the processing nodes.
  • Step S21 Obtain the graph to be calculated.
  • Step S22 Calculate the total task load corresponding to the graph to be calculated.
  • the total task load corresponding to the graph to be calculated is further calculated, which is equivalent to calculating the overall task load occupied by the graph to be calculated.
  • this step further calculates the task load expectation of each processing node according to the total task load and the ratio of computing resources.
  • the task load expectation here refers to the The load criteria that a node needs to meet when dividing the subgraph to be calculated is to ensure that the task load corresponding to the subgraph to be calculated matches the task load expectation of the target processing node when dividing the subgraph to be calculated for the target processing node.
  • Step S24 Divide the graph to be operated into corresponding subgraphs to be operated according to the task load expectation of each processing node.
  • the ratio between the task loads of the subgraphs to be operated that are allocated by each processing node is consistent with the ratio of computing resources.
  • the total task load corresponding to the graph to be calculated is calculated, and then the task load expectation of each processing node is calculated according to the total task load and the ratio of computing resources, and finally the graph to be calculated is divided into corresponding to-be-calculated graphs according to the task load expectation of each processing node.
  • the method of calculating subgraphs further ensures the overall accuracy of the process of dividing the graph to be calculated into subgraphs to be calculated for each processing node based on the ratio of computing resources, and further ensures the overall efficiency of graph computation performed by multiple processing nodes.
  • the task load expectation includes the computing load expectation and the communication load expectation.
  • the computing resource load generated by the subgraph to be operated in the processing node is specifically determined by the subgraph to be operated without considering the algorithm that the graph computation operation follows.
  • the number of edges and the number of vertices are affected jointly, and the communication resource load generated by the network communication between the processing node and other processing nodes is proportional to the number of cut edges of the subgraph to be operated.
  • the graph to be calculated is divided into corresponding subgraphs to be calculated according to the task load expectation of each processing node.
  • the sub-graphs to be operated with the corresponding number of edges, vertices, and cuts are divided in .
  • the focus of this embodiment is to calculate the graph to be computed on a specific target algorithm.
  • the total task load corresponding to the scene can further ensure the accuracy of the total task load corresponding to the graph to be calculated, and then after the subgraph to be calculated is divided based on the graph to be calculated, each subgraph to be calculated is allocated to the corresponding processing node, For each processing node to perform the graph computing operation based on the target algorithm, it can further ensure the overall efficiency of the graph computing performed by the multiple processing nodes.
  • the focus of this embodiment is to use a preset model data set to calculate the total task load corresponding to the graph to be computed in the target algorithm scenario.
  • the model data set is generated in advance based on the graph sample set and the sample algorithm set.
  • the graph sample set refers to the set of graph samples
  • the sample algorithm set refers to the set of graph algorithms. After the graph sample set and the sample algorithm set are obtained After that, the combination relationship between the map samples in the graph sample set and the sample algorithms in the sample algorithm set is further established.
  • the combination relationship referred to here is essentially the corresponding relationship between the graph samples and the sample algorithms.
  • the graph computing operation is performed in the embodiment of this scenario, it is mainly composed of two technical parts: (1) a quantitative analysis technique of graph task load; (2) a flow heuristic rule design technique of arbitrary scale.
  • the former provides measurement basis for the implementation of division; the latter provides reference for the formulation of division rules.
  • Load IN (G i ,Alg) can be obtained by referring to formula (1):
  • the proportion statistics module 10 is used to calculate the proportion of computing resources among the processing nodes
  • the graph obtaining module 11 is used to obtain the graph to be calculated
  • the graph dividing module 12 is configured to divide the graph to be computed into subgraphs to be computed of each processing node based on the ratio of computing resources; wherein, the ratio between the task loads of the subgraphs to be computed allocated to each processing node is consistent with the ratio of computing resources ;
  • the subgraph allocation module 13 is used for allocating each subgraph to be calculated to a corresponding processing node, so that each processing node can perform a graph calculation operation in parallel.
  • the device divides the sub-graphs based on the ratio of computing resources among the processing nodes to the corresponding task load ratio of the graph to be operated, and then the ratio of the task load between the processing nodes to the sub-graph to be operated is the same as that between the processing nodes.
  • the proportion of computing resources is the same, so as to realize the targeted distribution of sub-graphs to be operated on corresponding loads according to the difference in computing performance of each processing node, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes.
  • the processor is configured to implement the steps of the above graph computing method when executing the computer program.
  • the graph computing device provided by the present application firstly counts the ratio of computing resources between processing nodes used to perform graph computation, obtains the graph to be computed, and then divides the graph to be computed into the computations to be computed of each processing node based on the ratio of computing resources. Subgraphs, in which the ratio of the task load of the subgraphs to be calculated to each processing node is consistent with the ratio of computing resources, and then each subgraph to be calculated is allocated to the corresponding processing node for each processing node to execute the graph in parallel computing operations.
  • this device is based on the ratio of computing resources among the processing nodes, the sub-graphs of the corresponding task load ratio to be executed on the graph to be operated are divided, and then the ratio of the task load between the processing nodes to the sub-graph to be operated and the ratio between the processing nodes
  • the proportion of computing resources is the same, so that the sub-graphs to be operated on the corresponding loads are allocated in a targeted manner according to the difference in the computing performance of each processing node, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes.
  • an embodiment of the present application further provides a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the steps of the above-mentioned graph computing method are implemented.
  • the computer-readable storage medium provided by the present application firstly counts the ratio of computing resources between processing nodes used to perform graph computation, obtains the graph to be computed, and then divides the graph to be computed into A subgraph to be operated on, wherein the ratio of the task load of the subgraph to be operated to each processing node is the same as the ratio of computing resources, and then each subgraph to be operated is allocated to the corresponding processing node for parallel processing by each processing node Perform graph computation operations.
  • the sub-graphs are divided into sub-graphs that perform corresponding task load ratios on the graph to be operated, and then the task load ratio between the processing nodes and the sub-graph to be operated is related to each processing node.
  • the proportion of computing resources between nodes is consistent, so that according to the difference in computing performance of each processing node, the sub-graphs to be operated on corresponding loads are allocated in a targeted manner, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A graph computing method and apparatus, and a device and a storage medium. The steps of the method comprise: compiling statistics on computing resource proportions between processing nodes; acquiring a graph to be operated; on the basis of the computing resource proportions, dividing said graph into sub-graphs to be operated of each processing node, wherein the proportions between task loads of said sub-graphs allocated to each processing node are consistent with the computing resource proportions; and allocating each of said sub-graphs to a corresponding processing node, such that each processing node performs a graph computing operation in parallel. By means of this method, the overall efficiency of performing graph computing by a plurality of processing nodes is relatively ensured. In addition, further provided are a graph computing apparatus, a device and a storage medium, which have the same beneficial effects as described above.

Description

一种图计算方法、装置、设备及存储介质A graph computing method, device, equipment and storage medium
本申请要求于2020年7月24日提交中国专利局、申请号为202010724722.7、发明名称为“一种图计算方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application filed on July 24, 2020 with the application number 202010724722.7 and the invention titled "A Graph Computing Method, Apparatus, Equipment and Storage Medium", the entire contents of which are by reference Incorporated in this application.
技术领域technical field
本申请涉及云计算领域,特别是涉及一种图计算方法、装置、设备及存储介质。The present application relates to the field of cloud computing, and in particular, to a graph computing method, apparatus, device and storage medium.
背景技术Background technique
图(Graph)是用于表示对象之间关联关系的一种抽象数据结构,使用顶点(Vertex)和边(Edge)进行描述:顶点表示对象,边表示对象之间的关系。可抽象成用图描述的数据即为图数据。Graph (Graph) is an abstract data structure used to represent the association relationship between objects, which is described by vertices (Vertex) and edges (Edge): vertices represent objects, and edges represent the relationship between objects. Data that can be abstracted into graphs is graph data.
图计算,是以图作为数据模型来对现实问题进行建模、分析和求解的过程。实际场景下,图的规模往往比较大,通过多处理节点对图进行并行分布处理是当前实现图计算的主要方案。在通过由多个处理节点组成的并行计算系统对图进行并行分布处理前,需要先将图划分为子图,进而分别由各处理节点分别对相应的子图执行运算操作,进而由各处理节点共同运算得到图计算结果。但是在实际的运算场景下,由于各处理节点的运算性能往往存在差异,并且图计算的整体效率是由最后对子图完成运算操作的处理节点决定的。然而,当前的图划分算法往往假设并行计算系统是同构的,生成的图划分方案难以确保多个处理节点进行图计算的整体效率。Graph computing is the process of modeling, analyzing and solving real problems using graphs as data models. In actual scenarios, the scale of graphs is often relatively large, and parallel distributed processing of graphs through multiple processing nodes is the main solution for graph computing at present. Before performing parallel distributed processing on a graph through a parallel computing system composed of multiple processing nodes, the graph needs to be divided into subgraphs, and then each processing node performs operations on the corresponding subgraphs, and then each processing node performs operations on the corresponding subgraphs. Joint operation to obtain the graph calculation result. However, in actual computing scenarios, the computing performance of each processing node is often different, and the overall efficiency of graph computing is determined by the processing node that finally completes the computing operation on the subgraph. However, the current graph partitioning algorithms often assume that the parallel computing system is homogeneous, and the generated graph partitioning scheme is difficult to ensure the overall efficiency of graph computing performed by multiple processing nodes.
由此可见,提供一种图计算方法,以相对确保多个处理节点进行图计算的整体效率,是本领域技术人员需要解决的问题。It can be seen that it is a problem to be solved by those skilled in the art to provide a graph calculation method to relatively ensure the overall efficiency of graph calculation performed by multiple processing nodes.
发明内容SUMMARY OF THE INVENTION
本申请的目的是提供一种图计算方法、装置、设备及存储介质,以相对确保多个处理节点进行图计算的整体效率。The purpose of the present application is to provide a graph computing method, apparatus, device and storage medium to relatively ensure the overall efficiency of graph computing performed by multiple processing nodes.
为解决上述技术问题,本申请提供一种图计算方法,包括:In order to solve the above-mentioned technical problems, the present application provides a graph calculation method, including:
统计各处理节点之间的计算资源比例;Count the proportion of computing resources between processing nodes;
获取待运算图;Get the to-be-operated graph;
基于计算资源比例将待运算图划分为各处理节点的待运算子图;其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致;The graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources; wherein, the ratio between the task loads of the subgraphs to be computed allocated to each processing node is consistent with the ratio of computing resources;
将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。Allocate the subgraphs to be computed to the corresponding processing nodes, so that the processing nodes can perform graph computing operations in parallel.
优选地,基于计算资源比例将待运算图划分为各处理节点的待运算子图,包括:Preferably, the graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources, including:
在获取待运算图的同时,基于计算资源比例将待运算图划分为各处理节点的待运算子图。While acquiring the graph to be computed, the graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources.
优选地,基于计算资源比例将待运算图划分为各处理节点的待运算子图,包括:Preferably, the graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources, including:
计算待运算图对应的总任务负载;Calculate the total task load corresponding to the graph to be operated;
根据总任务负载以及计算资源比例计算各处理节点的任务负载期望;Calculate the task load expectation of each processing node according to the total task load and the proportion of computing resources;
依照各处理节点的任务负载期望将待运算图划分为相应的待运算子图。According to the task load expectation of each processing node, the graph to be computed is divided into corresponding subgraphs to be computed.
优选地,任务负载期望包括计算负载期望以及通信负载期望。Preferably, the task load expectations include computing load expectations and communication load expectations.
优选地,计算待运算图对应的总任务负载,包括:Preferably, calculating the total task load corresponding to the graph to be calculated includes:
计算待运算图在目标算法场景下对应的总任务负载;Calculate the total task load corresponding to the graph to be operated in the target algorithm scenario;
将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作,包括:Allocate each subgraph to be computed to the corresponding processing node, so that each processing node can perform graph computing operations in parallel, including:
将各待运算子图分配至相应的处理节点,以供各处理节点执行基于目标算法的图计算操作。Allocate each subgraph to be computed to a corresponding processing node, so that each processing node can perform graph computing operations based on the target algorithm.
优选地,计算待运算图在目标算法场景下对应的总任务负载,包括:Preferably, calculating the total task load corresponding to the graph to be computed in the target algorithm scenario, including:
利用预设的模型数据集计算待运算图在目标算法场景下对应的总任务负载;Use the preset model data set to calculate the total task load corresponding to the graph to be calculated in the target algorithm scenario;
模型数据集的生成过程包括:The generation process of the model dataset includes:
获取图样本集以及样本算法集;Obtain a graph sample set and a sample algorithm set;
建立图样本集中图样本与样本算法集中样本算法之间的组合关系;Establish the combination relationship between the graph samples in the graph sample set and the sample algorithms in the sample algorithm set;
统计各组合关系的样本任务负载,得到模型数据集。The sample task load of each combination relationship is counted to obtain the model data set.
优选地,计算资源比例包括计算资源的运算速率比例。Preferably, the computing resource ratio includes a computing rate ratio of the computing resources.
此外,本申请还提供一种图计算装置,包括:In addition, the present application also provides a graph computing device, comprising:
比例统计模块,用于统计各处理节点之间的计算资源比例;The proportion statistics module is used to calculate the proportion of computing resources among the processing nodes;
图获取模块,用于获取待运算图;The graph obtaining module is used to obtain the graph to be computed;
图划分模块,用于基于计算资源比例将待运算图划分为各处理节点的待运算子图;其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致;The graph dividing module is used to divide the graph to be computed into subgraphs to be computed of each processing node based on the ratio of computing resources; wherein, the ratio between the task loads of the subgraphs to be computed allocated to each processing node is consistent with the ratio of computing resources;
子图分配模块,用于将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。The sub-graph allocation module is used for allocating each sub-graph to be calculated to the corresponding processing node, so that each processing node can perform the graph computing operation in parallel.
优选地,图划分模块,包括:Preferably, the graph partitioning module includes:
总任务负载计算模块,用于计算待运算图对应的总任务负载;The total task load calculation module is used to calculate the total task load corresponding to the graph to be calculated;
期望任务负载计算模块,用于根据总任务负载以及计算资源比例计算各处理节点的任务负载期望;The expected task load calculation module is used to calculate the task load expectation of each processing node according to the total task load and the proportion of computing resources;
划分模块,用于依照各处理节点的任务负载期望将待运算图划分为相应的待运算子图。The dividing module is used for dividing the graph to be operated into corresponding subgraphs to be operated according to the task load expectation of each processing node.
此外,本申请还提供一种图计算设备,包括:In addition, the present application also provides a graph computing device, including:
存储器,用于存储计算机程序;memory for storing computer programs;
处理器,用于执行计算机程序时实现如上述的图计算方法的步骤。The processor is configured to implement the steps of the above graph computing method when executing the computer program.
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的图计算方法的步骤。In addition, the present application also provides a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the steps of the above graph computing method are implemented.
本申请所提供的图计算方法,首先统计用于执行图计算的各处理节点之间的计算资源比例,并获取待运算图,进而基于计算资源比例将待运算图划分为各处理节点的待运算子图,其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致,进而将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。由于本方法是基于各处理节点之间的计算资源比例对待运算图执行相应任务负载比例的 子图划分,进而各处理节点之间对与待运算子图的任务负载比例与各处理节点之间的计算资源比例一致,以此实现根据各处理节点的运算性能差异,有针对性的分配相应负载的待运算子图,进而相对确保了多个处理节点进行图计算的整体效率。此外,本申请还提供一种图计算装置、设备及存储介质,有益效果同上所述。The graph computing method provided by the present application firstly counts the ratio of computing resources among processing nodes used for performing graph computation, obtains the graph to be computed, and then divides the graph to be computed into the computations to be computed of each processing node based on the ratio of computing resources. Subgraphs, in which the ratio of the task load of the subgraphs to be calculated to each processing node is consistent with the ratio of computing resources, and then each subgraph to be calculated is allocated to the corresponding processing node for each processing node to execute the graph in parallel computing operations. Since this method is based on the ratio of computing resources among the processing nodes, the sub-graphs of the corresponding task load ratios to be executed on the graph to be operated are divided, and then the ratio of the task load between the processing nodes to the sub-graph to be operated and the ratio between the processing nodes The proportion of computing resources is the same, so that the sub-graphs to be operated on the corresponding loads are allocated in a targeted manner according to the difference in the computing performance of each processing node, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes. In addition, the present application also provides a graph computing device, equipment and storage medium, the beneficial effects are the same as described above.
附图说明Description of drawings
图1为本申请实施例公开的一种图计算方法的流程图;1 is a flowchart of a graph computing method disclosed in an embodiment of the present application;
图2为本申请实施例公开的一种图计算方法的流程图;2 is a flowchart of a graph computing method disclosed in an embodiment of the present application;
图3为本申请实施例公开的一种图计算装置的结构示意图。FIG. 3 is a schematic structural diagram of a graph computing device disclosed in an embodiment of the present application.
具体实施方式detailed description
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, but not all of the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in the present application without creative work fall within the protection scope of the present application.
图计算,是以图作为数据模型来对现实问题进行建模、分析和求解的过程。实际场景下,图的规模往往比较大,通过多处理节点对图进行并行分布处理是当前实现图计算的主要方案。在通过由多个处理节点组成的并行计算系统对图进行并行分布处理前,需要先将图划分为子图,进而分别由各处理节点分别对相应的子图执行运算操作,进而由各处理节点共同运算得到图计算结果。但是在实际的运算场景下,由于各处理节点的运算性能往往存在差异,并且图计算的整体效率是由最后对子图完成运算操作的处理节点决定的。然而,当前的图划分算法往往假设并行计算系统是同构的,生成的图划分方案难以确保多个处理节点进行图计算的整体效率。Graph computing is the process of modeling, analyzing and solving real problems using graphs as data models. In actual scenarios, the scale of graphs is often relatively large, and parallel distributed processing of graphs through multiple processing nodes is the main solution for graph computing at present. Before performing parallel distributed processing on a graph through a parallel computing system composed of multiple processing nodes, the graph needs to be divided into subgraphs, and then each processing node performs operations on the corresponding subgraphs, and then each processing node performs operations on the corresponding subgraphs. Joint operation to obtain the graph calculation result. However, in actual computing scenarios, the computing performance of each processing node is often different, and the overall efficiency of graph computing is determined by the processing node that finally completes the computing operation on the subgraph. However, the current graph partitioning algorithms often assume that the parallel computing system is homogeneous, and the generated graph partitioning scheme is difficult to ensure the overall efficiency of graph computing performed by multiple processing nodes.
为此,本申请的核心是提供一种图计算方法,以相对确保多个处理节点进行图计算的整体效率。Therefore, the core of the present application is to provide a graph computing method to relatively ensure the overall efficiency of graph computing performed by multiple processing nodes.
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。In order to make those skilled in the art better understand the solution of the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
请参见图1所示,本申请实施例公开了一种图计算方法,包括:Referring to FIG. 1 , an embodiment of the present application discloses a graph computing method, including:
步骤S10:统计各处理节点之间的计算资源比例。Step S10: Counting the computing resource ratio among the processing nodes.
需要说明的是,本步骤中的各处理节点指的是共同对待运算图执行分布式图计算的节点。本步骤中统计的各处理节点之间的计算资源比例,本质是上各处理节点的计算资源量之间的比例值,计算资源量指的是处理节点执行图计算时能够调用的硬件资源数量,是反映处理节点的运算性能的指标,因此本步骤中统计得到的各处理节点之间的计算资源比例,相当于各处理节点的运算性能之间的比例关系。It should be noted that each processing node in this step refers to a node that jointly performs distributed graph computation on the computation graph to be processed. The ratio of computing resources among the processing nodes calculated in this step is essentially the ratio between the computing resources of the processing nodes. The computing resources refer to the number of hardware resources that the processing nodes can call when performing graph computation. is an index reflecting the computing performance of the processing nodes, so the ratio of computing resources among the processing nodes obtained by statistics in this step is equivalent to the proportional relationship between the computing performances of the processing nodes.
步骤S11:获取待运算图。Step S11: Obtain the graph to be calculated.
本步骤中获取到待运算图指的是各处理节点需要在后续步骤中执行分布式图计算的图,可以认为是记录有特定数据内容的数据模型。另外,需要说明的是,获取待运算图的步骤与统计各处理节点之间的计算资源比例的步骤之间无先后顺序,因此本实施例中步骤S10与步骤S11之间的执行顺序不固定,步骤S10与步骤S11也可同时执行,应根据实际情况而定,在此不做具体限定。The graph to be computed obtained in this step refers to the graph that each processing node needs to perform distributed graph computation in subsequent steps, which can be considered as a data model with specific data content recorded. In addition, it should be noted that there is no sequence between the step of obtaining the graph to be calculated and the step of calculating the computing resource ratio between the processing nodes. Therefore, in this embodiment, the execution sequence between step S10 and step S11 is not fixed. Step S10 and step S11 may also be performed simultaneously, which should be determined according to the actual situation, which is not specifically limited here.
步骤S12:基于计算资源比例将待运算图划分为各处理节点的待运算子图。Step S12: Divide the graph to be computed into subgraphs to be computed of each processing node based on the ratio of computing resources.
其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致。Wherein, the ratio between the task loads of the subgraphs to be operated that are allocated by each processing node is consistent with the ratio of computing resources.
需要说明的是,在获取到各处理节点之间的计算资源比例与待运算图之后,本步骤进一步根据计算资源比例将待运算图划分为各处理节点的待运算子图。也就是说,本步骤是根据各处理节点之间的计算资源比例,将待运算图划分为与各处理节点分别对应的待运算子图,并且各处理节点之间对待运算子图的任务负载比例与各处理节点之间的计算资源比例一致,其中,任务负载比例指的是各个待运算子图在被处理时产生的相应任务负载之间的比例关系,也就是说,本实施例是根据各处理节点的运算能力在 整体处理节点中的占比,对各处理节点划分待运算图中具有相应任务负载程度占比的待运算子图,以此确保处理节点中计算资源比例较大的目标处理节点,能够对任务负载较大的待运算子图进行图计算操作。It should be noted that, after obtaining the computing resource ratio among the processing nodes and the to-be-operated graph, this step further divides the to-be-operated graph into the to-be-operated subgraphs of each processing node according to the computing resource ratio. That is to say, in this step, according to the ratio of computing resources among the processing nodes, the graph to be computed is divided into subgraphs to be computed corresponding to the processing nodes, and the task load ratio of the subgraphs to be computed among the processing nodes It is consistent with the ratio of computing resources among the processing nodes, where the task load ratio refers to the proportional relationship between the corresponding task loads generated when each sub-graph to be operated is processed, that is to say, this embodiment is based on each The proportion of the computing power of the processing nodes in the overall processing nodes, and divides the to-be-operated subgraphs with the corresponding task load proportions in the to-be-operated graph for each processing node, so as to ensure the target processing with a larger proportion of computing resources in the processing nodes. Node, which can perform graph computing operations on subgraphs to be operated with large task load.
步骤S13:将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。Step S13: Allocate each subgraph to be computed to a corresponding processing node, so that each processing node can perform graph computing operations in parallel.
在基于计算资源比例将待运算图划分为各处理节点的待运算子图之后,待运算子图与处理节点之间相当于建立的对应关系,进而将各待运算子图分配至相应的处理节点,以供各处理节点分别对自身接收到的待运算子图执行图计算操作,进而实现通过各处理节点对于待运算图的协同运算处理。After dividing the to-be-operated graph into the to-be-operated subgraphs of each processing node based on the ratio of computing resources, the corresponding relationship between the to-be-operated subgraphs and the processing nodes is established, and then each to-be-operated subgraph is allocated to the corresponding processing node , so that each processing node can perform a graph calculation operation on the subgraphs to be calculated that it receives, so as to realize the cooperative operation processing of the graphs to be calculated by each processing node.
本申请所提供的图计算方法,首先统计用于执行图计算的各处理节点之间的计算资源比例,并获取待运算图,进而基于计算资源比例将待运算图划分为各处理节点的待运算子图,其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致,进而将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。由于本方法是基于各处理节点之间的计算资源比例对待运算图执行相应任务负载比例的子图划分,进而各处理节点之间对与待运算子图的任务负载比例与各处理节点之间的计算资源比例一致,以此实现根据各处理节点的运算性能差异,有针对性的分配相应负载的待运算子图,进而相对确保了多个处理节点进行图计算的整体效率。The graph computing method provided by the present application firstly counts the ratio of computing resources among processing nodes used for performing graph computation, obtains the graph to be computed, and then divides the graph to be computed into the computations to be computed of each processing node based on the ratio of computing resources. Subgraphs, in which the ratio of the task load of the subgraphs to be calculated to each processing node is consistent with the ratio of computing resources, and then each subgraph to be calculated is allocated to the corresponding processing node for each processing node to execute the graph in parallel computing operations. Since this method is based on the ratio of computing resources among the processing nodes, the sub-graphs of the corresponding task load ratios to be executed on the graph to be operated are divided, and then the ratio of the task load between the processing nodes to the sub-graph to be operated and the ratio between the processing nodes The proportion of computing resources is the same, so that the sub-graphs to be operated on the corresponding loads are allocated in a targeted manner according to the difference in the computing performance of each processing node, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes.
在上述实施例的基础上,作为一种优选的实施方式,基于计算资源比例将待运算图划分为各处理节点的待运算子图,包括:On the basis of the above embodiment, as a preferred implementation, the graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources, including:
在获取待运算图的同时,基于计算资源比例将待运算图划分为各处理节点的待运算子图。While acquiring the graph to be computed, the graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources.
需要说明的是,由于考虑到在实际的图计算场景中,待运算图的数据量可能相对较大,因此为了进一步提高对于待运算子图的处理效率,本实施方式的重点在于,在获取待运算图的同时,并行执行基于计算资源比例将待运算图划分为各处理节点的待运算子图的步骤,以此达到对于待运算 图进行流式划分的目的。更进一步的,在获取待运算图的同时,基于计算资源比例将待运算图划分为各处理节点的待运算子图,可以具体是基于计算资源比例循环对各处理节点划分具有相应任务负载比例的待运算子图,直至待运算图全部划分完成。本实施方式能够进一步确保基于计算资源比例将待运算图划分为各处理节点的待运算子图过程的整体执行效率,进而相对确保图计算过程的整体效率。It should be noted that, considering that in the actual graph calculation scenario, the data amount of the graph to be calculated may be relatively large, so in order to further improve the processing efficiency of the subgraph to be calculated, the focus of this embodiment is to obtain the data to be calculated. While computing the graph, the step of dividing the graph to be computed into subgraphs to be computed of each processing node based on the ratio of computing resources is performed in parallel, so as to achieve the purpose of stream division of the graph to be computed. Further, while acquiring the graph to be computed, the graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources, and may specifically be cyclically divided based on the ratio of computing resources to each processing node having a corresponding task load ratio. Subgraphs to be operated on, until all of the graphs to be operated on are divided. This embodiment can further ensure the overall execution efficiency of the process of dividing the graph to be calculated into subgraphs to be calculated for each processing node based on the ratio of computing resources, thereby relatively ensuring the overall efficiency of the graph calculation process.
请参见图2所示,本申请实施例公开了一种图计算方法,包括:Referring to FIG. 2, an embodiment of the present application discloses a graph computing method, including:
步骤S20:统计各处理节点之间的计算资源比例。Step S20: Counting the computing resource ratio among the processing nodes.
步骤S21:获取待运算图。Step S21: Obtain the graph to be calculated.
步骤S22:计算待运算图对应的总任务负载。Step S22: Calculate the total task load corresponding to the graph to be calculated.
需要说明的是,本步骤在获取到待运算图之后,进一步计算待运算图对应的总任务负载,相当于计算待运算图整体占用的任务负载。It should be noted that, in this step, after the graph to be calculated is obtained, the total task load corresponding to the graph to be calculated is further calculated, which is equivalent to calculating the overall task load occupied by the graph to be calculated.
步骤S23:根据总任务负载以及计算资源比例计算各处理节点的任务负载期望。Step S23: Calculate the task load expectation of each processing node according to the total task load and the computing resource ratio.
在获取到待运算图对应的总任务负载之后,本步骤进一步根据总任务负载以及计算资源比例计算各处理节点的任务负载期望,此处的任务负载期望,指的是基于待运算图对各处理节点划分待运算子图时需要满足的负载标准,目的是在针对目标处理节点划分待运算子图时,确保该待运算子图对应的任务负与该目标处理节点的任务负载期望相匹配。After the total task load corresponding to the graph to be computed is obtained, this step further calculates the task load expectation of each processing node according to the total task load and the ratio of computing resources. The task load expectation here refers to the The load criteria that a node needs to meet when dividing the subgraph to be calculated is to ensure that the task load corresponding to the subgraph to be calculated matches the task load expectation of the target processing node when dividing the subgraph to be calculated for the target processing node.
步骤S24:依照各处理节点的任务负载期望将待运算图划分为相应的待运算子图。Step S24 : Divide the graph to be operated into corresponding subgraphs to be operated according to the task load expectation of each processing node.
其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致。Wherein, the ratio between the task loads of the subgraphs to be operated that are allocated by each processing node is consistent with the ratio of computing resources.
需要说明的是,本步骤在根据总任务负载以及计算资源比例计算各处理节点的任务负载期望之后,进一步依照各处理节点的任务负载期望将待运算图划分为相应的待运算子图,以此实现基于各处理节点之间的计算资源比例将待运算图划分为各处理节点的待运算子图的目的。It should be noted that, in this step, after calculating the task load expectation of each processing node according to the total task load and the ratio of computing resources, the graph to be computed is further divided into corresponding subgraphs to be computed according to the task load expectation of each processing node. The purpose of dividing the to-be-operated graph into the to-be-operated subgraphs of each processing node based on the ratio of computing resources among the processing nodes is achieved.
步骤S25:将各待运算子图分配至相应的处理节点,以供各处理节点 并行执行图计算操作。Step S25: Allocate each subgraph to be computed to a corresponding processing node, so that each processing node can perform graph computing operations in parallel.
本实施例通过计算待运算图对应的总任务负载,进而根据总任务负载以及计算资源比例计算各处理节点的任务负载期望,最终依照各处理节点的任务负载期望将待运算图划分为相应的待运算子图的方式,进一步确保了基于计算资源比例将待运算图划分为各处理节点的待运算子图过程的整体准确性,进一步确保了多个处理节点进行图计算的整体效率。In this embodiment, the total task load corresponding to the graph to be calculated is calculated, and then the task load expectation of each processing node is calculated according to the total task load and the ratio of computing resources, and finally the graph to be calculated is divided into corresponding to-be-calculated graphs according to the task load expectation of each processing node. The method of calculating subgraphs further ensures the overall accuracy of the process of dividing the graph to be calculated into subgraphs to be calculated for each processing node based on the ratio of computing resources, and further ensures the overall efficiency of graph computation performed by multiple processing nodes.
在上述实施例的基础上,作为一种优选的实施方式,任务负载期望包括计算负载期望以及通信负载期望。On the basis of the foregoing embodiment, as a preferred implementation manner, the task load expectation includes the computing load expectation and the communication load expectation.
需要说明的是,本实施方式中,任务负载期望进一步包括计算负载期望以及通信负载期望,其中,计算负载期望指的是处理节点对待运算子图进行图计算操作时,待运算子图在处理节点中所产生的计算资源负载的标准;通信负载期望指的是处理节点对待运算子图进行图计算操作时,该处理节点与其它处理节点之间进行网络通信所产生的通信资源负载的标准。本实施方式通过对任务负载期望进行进一步的细化,以此进一步确保了将待运算图划分为各处理节点相应的待运算子图时的准确性。It should be noted that, in this embodiment, the task load expectation further includes the computation load expectation and the communication load expectation, wherein the computation load expectation refers to that when the processing node performs a graph computing operation on the subgraph to be operated, the subgraph to be operated is in the processing node. The standard of the computing resource load generated in the communication load expectation refers to the standard of the communication resource load generated by the network communication between the processing node and other processing nodes when the processing node performs the graph computing operation on the subgraph to be operated. In this embodiment, the task load expectation is further refined, thereby further ensuring the accuracy of dividing the graph to be calculated into subgraphs to be calculated corresponding to each processing node.
更进一步的,处理节点对待运算子图进行图计算操作时,在不考虑图计算操作所依照的算法的前提下,待运算子图在处理节点中所产生的计算资源负载具体由待运算子图的边数量以及顶点数量共同影响,该处理节点与其它处理节点之间进行网络通信所产生的通信资源负载,具体与待运算子图的割边数量成正比。在此基础上,本实施例中依照各处理节点的任务负载期望将待运算图划分为相应的待运算子图,可以具体是根据各处理节点的计算负载期望以及通信负载期望,在待运算图中划分具有相应边数量、顶点数量以及割边数量的待运算子图。Furthermore, when the processing node performs a graph computation operation on the subgraph to be operated, the computing resource load generated by the subgraph to be operated in the processing node is specifically determined by the subgraph to be operated without considering the algorithm that the graph computation operation follows. The number of edges and the number of vertices are affected jointly, and the communication resource load generated by the network communication between the processing node and other processing nodes is proportional to the number of cut edges of the subgraph to be operated. On this basis, in this embodiment, the graph to be calculated is divided into corresponding subgraphs to be calculated according to the task load expectation of each processing node. The sub-graphs to be operated with the corresponding number of edges, vertices, and cuts are divided in .
在上述实施例的基础上,作为一种优选的实施方式,计算待运算图对应的总任务负载,包括:On the basis of the above embodiment, as a preferred implementation, calculating the total task load corresponding to the graph to be calculated includes:
计算待运算图在目标算法场景下对应的总任务负载;Calculate the total task load corresponding to the graph to be operated in the target algorithm scenario;
将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图 计算操作,包括:Allocate each subgraph to be computed to the corresponding processing node, so that each processing node can perform graph computing operations in parallel, including:
将各待运算子图分配至相应的处理节点,以供各处理节点执行基于目标算法的图计算操作。Allocate each subgraph to be computed to a corresponding processing node, so that each processing node can perform graph computing operations based on the target algorithm.
需要说明的是,由于考虑到在以不同的算法对待运算图执行图计算操作时,待运算图所产生的总任务负载往往不同,因此本实施方式的重点在于计算待运算图在特定的目标算法场景下对应的总任务负载,能够进一步确保待运算图对应的总任务负载的准确性,进而在基于待运算图划分得到待运算子图后,将各待运算子图分配至相应的处理节点,以供各处理节点执行基于该目标算法的图计算操作,能够进一步确保多个处理节点进行图计算的整体效率。It should be noted that, since the total task load generated by the graph to be computed is often different when the graph computation operation is performed on the graph with different algorithms, the focus of this embodiment is to calculate the graph to be computed on a specific target algorithm. The total task load corresponding to the scene can further ensure the accuracy of the total task load corresponding to the graph to be calculated, and then after the subgraph to be calculated is divided based on the graph to be calculated, each subgraph to be calculated is allocated to the corresponding processing node, For each processing node to perform the graph computing operation based on the target algorithm, it can further ensure the overall efficiency of the graph computing performed by the multiple processing nodes.
更进一步的,作为一种优选的实施方式,计算待运算图在目标算法场景下对应的总任务负载,包括:Further, as a preferred embodiment, calculating the total task load corresponding to the graph to be computed in the target algorithm scenario, including:
利用预设的模型数据集计算待运算图在目标算法场景下对应的总任务负载;Use the preset model data set to calculate the total task load corresponding to the graph to be calculated in the target algorithm scenario;
模型数据集的生成过程包括:The generation process of the model dataset includes:
获取图样本集以及样本算法集;Obtain a graph sample set and a sample algorithm set;
建立图样本集中图样本与样本算法集中样本算法之间的组合关系;Establish the combination relationship between the graph samples in the graph sample set and the sample algorithms in the sample algorithm set;
统计各组合关系的样本任务负载,得到模型数据集。The sample task load of each combination relationship is counted to obtain the model data set.
需要说明的是,本实施方式的重点在于利用预设的模型数据集计算待运算图在目标算法场景下对应的总任务负载。模型数据集是预先基于图样本集以及样本算法集生成的,其中,图样本集指的是图样本的集合,样本算法集指的是图算法的集合,在获取到图样本集以及样本算法集之后,进一步建立图样本集中图样本与样本算法集中样本算法之间的组合关系,此处所指的组合关系本质上是图样本与样本算法之间的对应关系,此处所指的组合关系,可以是图样本与样本算法之间的一对一的组合关系,也可以是一对多的组合关系,应根据实际需求而定,在建立图样本与样本算法之间的组合关系之后,本实施方式进一步统计对组合关系中的图样本执行该组合关系中的样本算法所产生的样本任务负载,以此得到包含有组合关系以及与组合关系对应的样本任务负载的模型数据集。在此基础上,利用预 设的模型数据集计算待运算图在目标算法场景下对应的总任务负载,可以具体是在模型数据集中获取与待运算图及目标算法的组合向对应的目标样本任务负载,并将目标样本任务负载设置为总任务负载。It should be noted that the focus of this embodiment is to use a preset model data set to calculate the total task load corresponding to the graph to be computed in the target algorithm scenario. The model data set is generated in advance based on the graph sample set and the sample algorithm set. The graph sample set refers to the set of graph samples, and the sample algorithm set refers to the set of graph algorithms. After the graph sample set and the sample algorithm set are obtained After that, the combination relationship between the map samples in the graph sample set and the sample algorithms in the sample algorithm set is further established. The combination relationship referred to here is essentially the corresponding relationship between the graph samples and the sample algorithms. The combination relationship referred to here is, It can be a one-to-one combination relationship between graph samples and sample algorithms, or a one-to-many combination relationship, which should be determined according to actual needs. After the combination relationship between graph samples and sample algorithms is established, this implementation The method further counts the sample task load generated by executing the sample algorithm in the combination relationship on the graph samples in the combination relationship, so as to obtain a model data set including the combination relationship and the sample task load corresponding to the combination relationship. On this basis, the preset model data set is used to calculate the total task load corresponding to the graph to be calculated in the target algorithm scenario. Specifically, the target sample task corresponding to the combination of the graph to be calculated and the target algorithm can be obtained in the model data set. load, and set the target sample task load as the total task load.
本实施方式通过利用预设的模型数据集计算待运算图在目标算法场景下对应的总任务负载的方式,进一步确保了计算待运算图在目标算法场景下对应的总任务负载时的整体效率以及准确性。This embodiment further ensures the overall efficiency and accuracy.
在上述一系列实施方式的基础上,作为一种优选的实施方式,计算资源比例包括计算资源的运算速率比例。On the basis of the above series of embodiments, as a preferred embodiment, the computing resource ratio includes the computing rate ratio of the computing resources.
需要说明的是,由于考虑到计算资源的运算速率比例相当于计算资源在单位时间对数据进行运算处理的数量,能够相对准确地反映处理节点的运算性能,进而处理节点之间的计算资源的运算速率比例,能够进一步准确地反映处理节点之间运算性能的关系,因此本实施方式能够进一步提高基于计算资源比例将待运算图划分为各处理节点的待运算子图过程的整体准确性,进一步确保了多个处理节点进行图计算的整体效率。It should be noted that, considering that the computing rate ratio of computing resources is equivalent to the number of computing resources that perform computing processing on data per unit time, the computing performance of processing nodes can be relatively accurately reflected, and the computing resources between computing resources can be processed. The rate ratio can further accurately reflect the relationship between the computing performance between the processing nodes. Therefore, this embodiment can further improve the overall accuracy of the process of dividing the graph to be computed into subgraphs to be computed for each processing node based on the ratio of computing resources, and further ensure that It improves the overall efficiency of graph computation with multiple processing nodes.
另外,在特定的场景下,计算资源可以包含多种类型,相应的,计算资源比例包括多种类型运算资源的运算速率比例。例如计算资源同时包含CPU(central processing unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)以及FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)中的一种或多种,则计算资源比例具体包括CPU、GPU以及FPGA的一种或多种计算资源之间的运算速率比例。In addition, in a specific scenario, computing resources may include multiple types, and correspondingly, the computing resource ratio includes the computing rate ratio of the computing resources of multiple types. For example, computing resources include one or more of CPU (central processing unit, central processing unit), GPU (Graphics Processing Unit, graphics processor) and FPGA (Field Programmable Gate Array, field programmable gate array), then The computing resource ratio specifically includes the computing rate ratio among one or more computing resources of the CPU, GPU, and FPGA.
为了增加对于本申请上述实施例的理解,下面通过一个具体的场景实施例做进一步说明。In order to increase the understanding of the above embodiments of the present application, a specific scenario embodiment is used for further description below.
在本场景实施例中执行图计算操作时,主要由两个技术部分构成:(1)图任务负载量化分析技术;(2)任意比例的流式启发式规则设计技术。其中,前者为实施划分提供度量依据;后者为制定划分规则提供参考。When the graph computing operation is performed in the embodiment of this scenario, it is mainly composed of two technical parts: (1) a quantitative analysis technique of graph task load; (2) a flow heuristic rule design technique of arbitrary scale. Among them, the former provides measurement basis for the implementation of division; the latter provides reference for the formulation of division rules.
(1)图任务负载量化分析技术。所谓图任务负载,广义指解决某一图论问题的图算法Alg在待运算图G上执行时算法操作的工作量,具体指图顶 点的计算操作以及连接边的数据传输操作的工作量之和。因此,图任务负载Load(G,Alg)与G的拓扑结构和其上执行的图算法Alg密不可分。借鉴图算法复杂性分析理论,根据观察和总结,Load(G,Alg)可用以下公式度量:(1) Graph task load quantitative analysis technology. The so-called graph task load, in a broad sense, refers to the workload of the algorithm operation when the graph algorithm Alg to solve a graph theory problem is executed on the to-be-operated graph G. Specifically, it refers to the sum of the workload of the calculation operation of the graph vertices and the data transmission operation of the connecting edge. . Therefore, the graph task load Load(G, Alg) is inseparable from the topology of G and the graph algorithm Alg executed on it. Drawing on the theory of graph algorithm complexity analysis, according to observations and summaries, Load(G, Alg) can be measured by the following formula:
Load(G,Alg)=a(|V|-r) α+b(|E|-s) β+clog((|V|-r)·(|E|-s)+1)+d  (1) Load(G,Alg)=a(|V|-r) α +b(|E|-s) β +clog((|V|-r)·(|E|-s)+1)+d ( 1)
其中,a,b,c,d,r,s和α,β都是实数域的未知参数,它们的取值与图拓扑结构特征和图算法执行行为密切相关。这些参数可通过对机器学习算法进行多元非线性回归分析得到。其中,训练数据集生成方法如下:从开源图数据集下载图数据集,选取典型的图算法,在单机上对大图执行图算法所规定的操作以对大图实施分析和挖掘,记录图算法执行时间,由处理节点CPU计算速度乘以图算法执行时间,即可得到图任务负载。每一个图的顶点数、连接边数和图任务负载构成一个训练样本,重复执行即可得到多个样本,所有样本即构成训练数据集。Among them, a, b, c, d, r, s and α, β are all unknown parameters in the real number domain, and their values are closely related to the graph topology features and the execution behavior of graph algorithms. These parameters can be obtained by performing multiple nonlinear regression analysis on the machine learning algorithm. Among them, the training data set generation method is as follows: download the graph data set from the open source graph data set, select a typical graph algorithm, perform the operations specified by the graph algorithm on the large graph on a single computer to analyze and mine the big graph, record the graph algorithm The execution time is calculated by multiplying the CPU computing speed of the processing node by the execution time of the graph algorithm to obtain the graph task load. The number of vertices, the number of connected edges and the graph task load of each graph constitute a training sample, and multiple samples can be obtained by repeated execution, and all samples constitute a training data set.
对于待运算图G的任一待运算子图G i,i∈[1,k],k为,图算法Alg在其上执行的任务负载由计算负载和通信负载两部分构成。不妨记上述三者分别为Load(G i,Alg)、Load IN(G i,Alg)和Load OUT(G i,Alg),则: For any to-be- operated subgraph G i of the to-be-operated graph G, i∈[1,k], k is, the task load executed by the graph algorithm Alg on it is composed of two parts: computation load and communication load. Remember that the above three are Load(G i ,Alg), Load IN (G i ,Alg) and Load OUT (G i ,Alg), then:
Load(G i,Alg)=Load IN(G i,Alg)+Load OUT(G i,Alg)  (2) Load(G i ,Alg)=Load IN (G i ,Alg)+Load OUT (G i ,Alg) (2)
其中,Load IN(G i,Alg)可借鉴公式(1)得到: Among them, Load IN (G i ,Alg) can be obtained by referring to formula (1):
Figure PCTCN2021071205-appb-000001
Figure PCTCN2021071205-appb-000001
其中,
Figure PCTCN2021071205-appb-000002
表示待运算子图G i的内部边的集合。而G i与其他子图的通信负载由它们之间的割边总数成比例,若记G i与其他子图之间的割边集为
Figure PCTCN2021071205-appb-000003
则:
in,
Figure PCTCN2021071205-appb-000002
Represents the set of interior edges of the subgraph G i to be operated on. G i and the communication load from the other sub-graph is proportional to the total number of cutting edges between them, if the mind set between the cutting edge and the other G i is a subgraph
Figure PCTCN2021071205-appb-000003
but:
Figure PCTCN2021071205-appb-000004
Figure PCTCN2021071205-appb-000004
其中,g,h和γ都是实数域的未知参数,它们同样可以用多元非线性回归分析方法得到。Among them, g, h and γ are all unknown parameters in the real number domain, and they can also be obtained by the multivariate nonlinear regression analysis method.
(2)任意比例的流式启发式规则设计技术。任意比例的流式启发式规则是任意比例流式划分方法的核心,是实现任意比例划分的关键。以下介绍任意比例流式启发式规则设计的一般流程:(a)设并行计算系统由k个处理节点p 1,p 2,…,p k通过互连网络连接,它们的处理速度分别记为sv 1,sv 2,...,sv k, 且满足sv 1≤sv 2≤...≤sv k;统计目标并行计算系统处理节点个数以及各处理节点CPU的计算速度,取它们的比值为任意比例关系
Figure PCTCN2021071205-appb-000005
(b)给定待运算图G和图算法Alg,根据公式(1)计算在G上执行Alg算法的图任务负载Load(G i,Alg),理想情况下,处理节点p i分得的子图G i对应的图任务负载与p i的计算能力大小相匹配。不妨称该任务负载为p i或G i的期望任务负载,记为Load E(G i,Alg),则:
(2) Flow heuristic rule design technology of arbitrary scale. The flow heuristic rule of any proportion is the core of the arbitrary proportion streaming partition method, and it is the key to realize the arbitrary proportion partition. The following describes the general flow of the heuristic rule design for any proportional flow: (a) Suppose the parallel computing system consists of k processing nodes p 1 , p 2 ,..., p k connected through an interconnecting network, and their processing speeds are respectively denoted as sv 1 ,sv 2 ,...,sv k , and satisfy sv 1 ≤sv 2 ≤...≤sv k ; count the number of processing nodes in the target parallel computing system and the computing speed of the CPU of each processing node, and take their ratio as any proportional relationship
Figure PCTCN2021071205-appb-000005
sub (b) to be given a graph G and the operational algorithm Alg, according to equation (1) is calculated in the implementation of the algorithm G Alg FIG workload Load (G i, Alg), ideally, the share of processing node p i FIG G i corresponding computing capacity and the size of the task load p i FIG match. It said the task may wish to load the desired task or load p i G i, denoted by Load E (G i, Alg) , then:
Load E(G i,Alg)=γ iLoad(G,Alg)  (5) Load E (G i ,Alg)=γ i Load(G,Alg) (5)
在划分过程中的每个时刻,可根据公式(2)~(4)计算节点p i上已分配子图G i对应的实际任务负载大小Load(G i,Alg)。以上述两个信息为依据,制定流式启发式规则,指定每个顶点应该流向哪个子图,以便在划分过程中,不断缩小每个子图的实际任务负载与期望任务负载之间的差异;待划分结束时,即可得到各子图任务负载满足任意比例关系的图划分,该划分由于保证了每个处理节点分得的图任务负载与其计算速度相匹配,可大大提高并行处理效率。 At each moment in the division process, the actual task load size Load(G i , Alg) corresponding to the allocated subgraph G i on the node p i can be calculated according to formulas (2) to (4). Based on the above two information, formulate flow heuristic rules to specify which subgraph each vertex should flow to, so as to continuously reduce the difference between the actual task load and the expected task load of each subgraph during the division process; At the end of the division, a graph division in which the task load of each subgraph satisfies any proportional relationship can be obtained. This division ensures that the graph task load assigned by each processing node matches its computing speed, which can greatly improve the parallel processing efficiency.
请参见图3所示,本申请实施例提供了一种图计算装置,包括:Referring to FIG. 3 , an embodiment of the present application provides a graph computing device, including:
比例统计模块10,用于统计各处理节点之间的计算资源比例;The proportion statistics module 10 is used to calculate the proportion of computing resources among the processing nodes;
图获取模块11,用于获取待运算图;The graph obtaining module 11 is used to obtain the graph to be calculated;
图划分模块12,用于基于计算资源比例将待运算图划分为各处理节点的待运算子图;其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致;The graph dividing module 12 is configured to divide the graph to be computed into subgraphs to be computed of each processing node based on the ratio of computing resources; wherein, the ratio between the task loads of the subgraphs to be computed allocated to each processing node is consistent with the ratio of computing resources ;
子图分配模块13,用于将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。The subgraph allocation module 13 is used for allocating each subgraph to be calculated to a corresponding processing node, so that each processing node can perform a graph calculation operation in parallel.
更进一步的,作为一种优选的实施方式,图划分模块,包括:Further, as a preferred embodiment, the graph division module includes:
总任务负载计算模块,用于计算待运算图对应的总任务负载;The total task load calculation module is used to calculate the total task load corresponding to the graph to be calculated;
期望任务负载计算模块,用于根据总任务负载以及计算资源比例计算 各处理节点的任务负载期望;The expected task load calculation module is used to calculate the task load expectation of each processing node according to the total task load and the proportion of computing resources;
划分模块,用于依照各处理节点的任务负载期望将待运算图划分为相应的待运算子图。The dividing module is used for dividing the graph to be operated into corresponding subgraphs to be operated according to the task load expectation of each processing node.
本申请所提供的图计算装置,首先统计用于执行图计算的各处理节点之间的计算资源比例,并获取待运算图,进而基于计算资源比例将待运算图划分为各处理节点的待运算子图,其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致,进而将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。由于本装置是基于各处理节点之间的计算资源比例对待运算图执行相应任务负载比例的子图划分,进而各处理节点之间对与待运算子图的任务负载比例与各处理节点之间的计算资源比例一致,以此实现根据各处理节点的运算性能差异,有针对性的分配相应负载的待运算子图,进而相对确保了多个处理节点进行图计算的整体效率。The graph computing device provided by the present application firstly counts the ratio of computing resources between processing nodes for performing graph computing, obtains the graph to be computed, and then divides the graph to be computed into the computations to be computed of each processing node based on the ratio of computing resources. Subgraphs, in which the ratio of the task load of the subgraphs to be calculated to each processing node is consistent with the ratio of computing resources, and then each subgraph to be calculated is allocated to the corresponding processing node for each processing node to execute the graph in parallel computing operations. Because the device divides the sub-graphs based on the ratio of computing resources among the processing nodes to the corresponding task load ratio of the graph to be operated, and then the ratio of the task load between the processing nodes to the sub-graph to be operated is the same as that between the processing nodes. The proportion of computing resources is the same, so as to realize the targeted distribution of sub-graphs to be operated on corresponding loads according to the difference in computing performance of each processing node, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes.
此外,本申请实施例还提供一种图计算设备,包括:In addition, an embodiment of the present application also provides a graph computing device, including:
存储器,用于存储计算机程序;memory for storing computer programs;
处理器,用于执行计算机程序时实现如上述的图计算方法的步骤。The processor is configured to implement the steps of the above graph computing method when executing the computer program.
本申请所提供的图计算设备,首先统计用于执行图计算的各处理节点之间的计算资源比例,并获取待运算图,进而基于计算资源比例将待运算图划分为各处理节点的待运算子图,其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致,进而将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。由于本设备是基于各处理节点之间的计算资源比例对待运算图执行相应任务负载比例的子图划分,进而各处理节点之间对与待运算子图的任务负载比例与各处理节点之间的计算资源比例一致,以此实现根据各处理节点的运算性能差异,有针对性的分配相应负载的待运算子图,进而相对确保了多个处理节点进行图计算的整体效率。The graph computing device provided by the present application firstly counts the ratio of computing resources between processing nodes used to perform graph computation, obtains the graph to be computed, and then divides the graph to be computed into the computations to be computed of each processing node based on the ratio of computing resources. Subgraphs, in which the ratio of the task load of the subgraphs to be calculated to each processing node is consistent with the ratio of computing resources, and then each subgraph to be calculated is allocated to the corresponding processing node for each processing node to execute the graph in parallel computing operations. Since this device is based on the ratio of computing resources among the processing nodes, the sub-graphs of the corresponding task load ratio to be executed on the graph to be operated are divided, and then the ratio of the task load between the processing nodes to the sub-graph to be operated and the ratio between the processing nodes The proportion of computing resources is the same, so that the sub-graphs to be operated on the corresponding loads are allocated in a targeted manner according to the difference in the computing performance of each processing node, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes.
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存 储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的图计算方法的步骤。In addition, an embodiment of the present application further provides a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the steps of the above-mentioned graph computing method are implemented.
本申请所提供的计算机可读存储介质,首先统计用于执行图计算的各处理节点之间的计算资源比例,并获取待运算图,进而基于计算资源比例将待运算图划分为各处理节点的待运算子图,其中,各处理节点分配到的待运算子图的任务负载之间的比例与计算资源比例一致,进而将各待运算子图分配至相应的处理节点,以供各处理节点并行执行图计算操作。由于本计算机可读存储介质是基于各处理节点之间的计算资源比例对待运算图执行相应任务负载比例的子图划分,进而各处理节点之间对与待运算子图的任务负载比例与各处理节点之间的计算资源比例一致,以此实现根据各处理节点的运算性能差异,有针对性的分配相应负载的待运算子图,进而相对确保了多个处理节点进行图计算的整体效率。The computer-readable storage medium provided by the present application firstly counts the ratio of computing resources between processing nodes used to perform graph computation, obtains the graph to be computed, and then divides the graph to be computed into A subgraph to be operated on, wherein the ratio of the task load of the subgraph to be operated to each processing node is the same as the ratio of computing resources, and then each subgraph to be operated is allocated to the corresponding processing node for parallel processing by each processing node Perform graph computation operations. Since the computer-readable storage medium is based on the ratio of computing resources among the processing nodes, the sub-graphs are divided into sub-graphs that perform corresponding task load ratios on the graph to be operated, and then the task load ratio between the processing nodes and the sub-graph to be operated is related to each processing node. The proportion of computing resources between nodes is consistent, so that according to the difference in computing performance of each processing node, the sub-graphs to be operated on corresponding loads are allocated in a targeted manner, thereby relatively ensuring the overall efficiency of graph computing for multiple processing nodes.
以上对本申请所提供的一种图计算方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。A graph computing method, apparatus, device, and storage medium provided by the present application have been described in detail above. The various embodiments in the specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the various embodiments can be referred to each other. As for the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant part can be referred to the description of the method. It should be pointed out that for those of ordinary skill in the art, without departing from the principles of the present application, several improvements and modifications can also be made to the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设 备中还存在另外的相同要素。It should also be noted that, in this specification, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply these entities or operations. There is no such actual relationship or sequence between operations. Moreover, the terms "comprising", "comprising" or any other variation thereof are intended to encompass a non-exclusive inclusion such that a process, method, article or device that includes a list of elements includes not only those elements, but also includes not explicitly listed or other elements inherent to such a process, method, article or apparatus. Without further limitation, an element qualified by the phrase "comprising a..." does not preclude the presence of additional identical elements in a process, method, article or apparatus that includes the element.

Claims (10)

  1. 一种图计算方法,其特征在于,包括:A graph computing method, comprising:
    统计各处理节点之间的计算资源比例;Count the proportion of computing resources between processing nodes;
    获取待运算图;Get the to-be-operated graph;
    基于所述计算资源比例将所述待运算图划分为各所述处理节点的待运算子图;其中,各所述处理节点分配到的所述待运算子图的任务负载之间的比例与所述计算资源比例一致;The graph to be computed is divided into subgraphs to be computed of each processing node based on the ratio of computing resources; wherein the ratio of the task loads of the subgraphs to be computed allocated to each processing node is the same as that of all the subgraphs to be computed. The proportion of computing resources described above is consistent;
    将各所述待运算子图分配至相应的所述处理节点,以供各所述处理节点并行执行图计算操作。Each of the subgraphs to be computed is allocated to the corresponding processing nodes, so that each of the processing nodes can perform graph computing operations in parallel.
  2. 根据权利要求1所述的图计算方法,其特征在于,所述基于所述计算资源比例将所述待运算图划分为各所述处理节点的待运算子图,包括:The graph computing method according to claim 1, wherein the dividing the to-be-computed graph into the to-be-computed subgraphs of each processing node based on the computing resource ratio comprises:
    在获取所述待运算图的同时,基于所述计算资源比例将所述待运算图划分为各所述处理节点的待运算子图。While acquiring the graph to be computed, the graph to be computed is divided into subgraphs to be computed of each processing node based on the computing resource ratio.
  3. 根据权利要求1所述的图计算方法,其特征在于,所述基于所述计算资源比例将所述待运算图划分为各所述处理节点的待运算子图,包括:The graph computing method according to claim 1, wherein the dividing the to-be-computed graph into the to-be-computed subgraphs of each processing node based on the computing resource ratio comprises:
    计算所述待运算图对应的总任务负载;calculating the total task load corresponding to the to-be-operated graph;
    根据所述总任务负载以及所述计算资源比例计算各所述处理节点的任务负载期望;Calculate the task load expectation of each of the processing nodes according to the total task load and the computing resource ratio;
    依照各所述处理节点的任务负载期望将所述待运算图划分为相应的所述待运算子图。The to-be-operated graph is divided into corresponding to-be-operated subgraphs according to the task load expectations of each of the processing nodes.
  4. 根据权利要求3所述的图计算方法,其特征在于,所述任务负载期望包括计算负载期望以及通信负载期望。The graph computing method according to claim 3, wherein the task load expectation includes a computation load expectation and a communication load expectation.
  5. 根据权利要求3所述的图计算方法,其特征在于,所述计算所述待运算图对应的总任务负载,包括:The graph computing method according to claim 3, wherein the calculating the total task load corresponding to the graph to be computed comprises:
    计算所述待运算图在目标算法场景下对应的所述总任务负载;calculating the total task load corresponding to the to-be-operated graph in the target algorithm scenario;
    所述将各所述待运算子图分配至相应的所述处理节点,以供各所述处理节点并行执行图计算操作,包括:The allocating each of the sub-graphs to be computed to the corresponding processing nodes, so that each of the processing nodes can perform graph computing operations in parallel, includes:
    将各所述待运算子图分配至相应的所述处理节点,以供各所述处理节点执行基于所述目标算法的图计算操作。Each of the subgraphs to be computed is allocated to the corresponding processing node, so that each of the processing nodes can perform a graph computing operation based on the target algorithm.
  6. 根据权利要求5所述的图计算方法,其特征在于,所述计算所述待运算图在目标算法场景下对应的所述总任务负载,包括:The graph computing method according to claim 5, wherein the calculating the total task load corresponding to the graph to be computed in the target algorithm scenario comprises:
    利用预设的模型数据集计算所述待运算图在目标算法场景下对应的所述总任务负载;Using a preset model data set to calculate the total task load corresponding to the graph to be computed in the target algorithm scenario;
    所述模型数据集的生成过程包括:The generation process of the model dataset includes:
    获取图样本集以及样本算法集;Obtain a graph sample set and a sample algorithm set;
    建立所述图样本集中图样本与所述样本算法集中样本算法之间的组合关系;establishing a combination relationship between the graph samples in the graph sample set and the sample algorithms in the sample algorithm set;
    统计各所述组合关系的样本任务负载,得到所述模型数据集。The sample task load of each of the combination relationships is counted to obtain the model data set.
  7. 根据权利要求1至6任意一项所述的图计算方法,其特征在于,所述计算资源比例包括计算资源的运算速率比例。The graph computing method according to any one of claims 1 to 6, wherein the computing resource ratio comprises a computing rate ratio of computing resources.
  8. 一种图计算装置,其特征在于,包括:A graph computing device, comprising:
    比例统计模块,用于统计各处理节点之间的计算资源比例;The proportion statistics module is used to calculate the proportion of computing resources among the processing nodes;
    图获取模块,用于获取待运算图;The graph obtaining module is used to obtain the graph to be computed;
    图划分模块,用于基于所述计算资源比例将所述待运算图划分为各所述处理节点的待运算子图;其中,各所述处理节点分配到的所述待运算子图的任务负载之间的比例与所述计算资源比例一致;A graph dividing module, configured to divide the graph to be calculated into subgraphs to be calculated for each processing node based on the computing resource ratio; wherein, the task load of the subgraphs to be calculated allocated to each processing node The ratio between them is consistent with the computing resource ratio;
    子图分配模块,用于将各所述待运算子图分配至相应的所述处理节点,以供各所述处理节点并行执行图计算操作。A sub-graph allocation module, configured to allocate each of the sub-graphs to be computed to the corresponding processing nodes, so that each of the processing nodes can perform graph computing operations in parallel.
  9. 一种图计算设备,其特征在于,包括:A graph computing device, comprising:
    存储器,用于存储计算机程序;memory for storing computer programs;
    处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的图计算方法的步骤。The processor is configured to implement the steps of the graph computing method according to any one of claims 1 to 6 when executing the computer program.
  10. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的图计算方法的步骤。A computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the graph computing method according to any one of claims 1 to 6 is implemented A step of.
PCT/CN2021/071205 2020-07-24 2021-01-12 Graph computing method and apparatus, and device and storage medium WO2022016833A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010724722.7A CN111858059A (en) 2020-07-24 2020-07-24 Graph calculation method, device, equipment and storage medium
CN202010724722.7 2020-07-24

Publications (1)

Publication Number Publication Date
WO2022016833A1 true WO2022016833A1 (en) 2022-01-27

Family

ID=72949562

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/071205 WO2022016833A1 (en) 2020-07-24 2021-01-12 Graph computing method and apparatus, and device and storage medium

Country Status (2)

Country Link
CN (1) CN111858059A (en)
WO (1) WO2022016833A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115061825A (en) * 2022-08-09 2022-09-16 深圳致星科技有限公司 Heterogeneous computing system and method for private computing, private data and federal learning

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858059A (en) * 2020-07-24 2020-10-30 苏州浪潮智能科技有限公司 Graph calculation method, device, equipment and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488134A (en) * 2015-11-25 2016-04-13 用友网络科技股份有限公司 Big data processing method and big data processing device
US20180024869A1 (en) * 2016-07-22 2018-01-25 Board Of Regents, The University Of Texas System Guided load balancing of graph processing workloads on heterogeneous clusters
CN109710406A (en) * 2018-12-21 2019-05-03 腾讯科技(深圳)有限公司 Data distribution and its model training method, device and computing cluster
CN110415162A (en) * 2019-07-22 2019-11-05 中国人民大学 Towards the adaptive figure division methods of isomery fusion treatment device in big data
CN110619595A (en) * 2019-09-17 2019-12-27 华中科技大学 Graph calculation optimization method based on interconnection of multiple FPGA accelerators
CN110659278A (en) * 2018-06-12 2020-01-07 上海郑明现代物流有限公司 Graph data distributed processing system based on CPU-GPU heterogeneous architecture
CN111858059A (en) * 2020-07-24 2020-10-30 苏州浪潮智能科技有限公司 Graph calculation method, device, equipment and storage medium
CN112445940A (en) * 2020-10-16 2021-03-05 苏州浪潮智能科技有限公司 Graph partitioning method, graph partitioning device and computer-readable storage medium

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488134A (en) * 2015-11-25 2016-04-13 用友网络科技股份有限公司 Big data processing method and big data processing device
US20180024869A1 (en) * 2016-07-22 2018-01-25 Board Of Regents, The University Of Texas System Guided load balancing of graph processing workloads on heterogeneous clusters
CN110659278A (en) * 2018-06-12 2020-01-07 上海郑明现代物流有限公司 Graph data distributed processing system based on CPU-GPU heterogeneous architecture
CN109710406A (en) * 2018-12-21 2019-05-03 腾讯科技(深圳)有限公司 Data distribution and its model training method, device and computing cluster
CN110415162A (en) * 2019-07-22 2019-11-05 中国人民大学 Towards the adaptive figure division methods of isomery fusion treatment device in big data
CN110619595A (en) * 2019-09-17 2019-12-27 华中科技大学 Graph calculation optimization method based on interconnection of multiple FPGA accelerators
CN111858059A (en) * 2020-07-24 2020-10-30 苏州浪潮智能科技有限公司 Graph calculation method, device, equipment and storage medium
CN112445940A (en) * 2020-10-16 2021-03-05 苏州浪潮智能科技有限公司 Graph partitioning method, graph partitioning device and computer-readable storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115061825A (en) * 2022-08-09 2022-09-16 深圳致星科技有限公司 Heterogeneous computing system and method for private computing, private data and federal learning
CN115061825B (en) * 2022-08-09 2022-11-18 深圳致星科技有限公司 Heterogeneous computing system and method for private computing, private data and federal learning

Also Published As

Publication number Publication date
CN111858059A (en) 2020-10-30

Similar Documents

Publication Publication Date Title
Rashid et al. Design and analysis of proposed remote controlling distributed parallel computing system over the cloud
Hegeman et al. Toward optimal bounds in the congested clique: Graph connectivity and MST
Lucier et al. Influence at scale: Distributed computation of complex contagion in networks
US8402469B2 (en) Allocating resources for parallel execution of query plans
US8799916B2 (en) Determining an allocation of resources for a job
WO2022016833A1 (en) Graph computing method and apparatus, and device and storage medium
Poullie et al. A survey of the state-of-the-art in fair multi-resource allocations for data centers
WO2018176385A1 (en) System and method for network slicing for service-oriented networks
CN109189572B (en) Resource estimation method and system, electronic equipment and storage medium
CN112445940B (en) Graph partitioning method, graph partitioning device and computer-readable storage medium
Chen et al. AAGA: Affinity-aware grouping for allocation of virtual machines
Zou et al. Cloudia: a deployment advisor for public clouds
Dichev et al. Optimization of collective communication for heterogeneous hpc platforms
CN113746798B (en) Cloud network shared resource abnormal root cause positioning method based on multi-dimensional analysis
Brandt et al. Demonstrating improved application performance using dynamic monitoring and task mapping
CN107222410B (en) Method, device, terminal and computer readable storage medium for link prediction
Higashino et al. Cepsim: A simulator for cloud-based complex event processing
Sotiriadis et al. Towards inter-cloud simulation performance analysis: Exploring service-oriented benchmarks of clouds in SimIC
Obaida et al. Simulation of HPC job scheduling and large-scale parallel workloads
Lucarelli et al. Contiguity and locality in backfilling scheduling
Ismaeel et al. A systematic cloud workload clustering technique in large scale data centers
Nesi et al. GPU-accelerated algorithms for allocating virtual infrastructure in cloud data centers
Lastovetsky et al. Accurate and efficient estimation of parameters of heterogeneous communication performance models
Schonbein et al. Low-cost MPI multithreaded message matching benchmarking
CN114138284A (en) Model deployment processing method and device, electronic equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21847301

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21847301

Country of ref document: EP

Kind code of ref document: A1