WO2016123808A1 - 数据处理系统、计算节点和数据处理的方法 - Google Patents
数据处理系统、计算节点和数据处理的方法 Download PDFInfo
- Publication number
- WO2016123808A1 WO2016123808A1 PCT/CN2015/072451 CN2015072451W WO2016123808A1 WO 2016123808 A1 WO2016123808 A1 WO 2016123808A1 CN 2015072451 W CN2015072451 W CN 2015072451W WO 2016123808 A1 WO2016123808 A1 WO 2016123808A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- data block
- intermediate result
- node
- computing
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 392
- 238000004364 calculation method Methods 0.000 title claims abstract description 79
- 238000003672 processing method Methods 0.000 title abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 125
- 230000008569 process Effects 0.000 claims abstract description 62
- 239000011159 matrix material Substances 0.000 claims description 271
- 239000013598 vector Substances 0.000 claims description 134
- 230000009467 reduction Effects 0.000 claims description 69
- 238000007726 management method Methods 0.000 description 110
- 238000010586 diagram Methods 0.000 description 19
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 8
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000007418 data mining Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 241001596784 Pegasus Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- OGJPXUAPXNRGGI-UHFFFAOYSA-N norfloxacin Chemical compound C1=C2N(CC)C=C(C(O)=O)C(=O)C2=CC(F)=C1N1CCNCC1 OGJPXUAPXNRGGI-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4824—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
-
- 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
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Definitions
- the present invention relates to the field of computer technology, and in particular, to a data processing system, a computing node, and a data processing method in the field of graph computing.
- the object of data mining and machine learning is usually a collection of objects and the relationship between these objects (for example, social networks).
- the above research objects can be expressed in the form of graphs in mathematical meaning.
- the graph is used to describe the relationship between the object and the object. From the visual point of view, the graph can be composed of small dots and lines connecting the dots. The dots are called vertex of the graph, and the line scale connecting the dots. For the edge.
- a data structure is chosen to represent the graph.
- the adjacency list uses objects to represent vertices, and uses pointers or references to represent edges. This data structure is not conducive to parallelization of graphs.
- Adjacency matrix referred to as matrix in this paper, uses a two-dimensional matrix to store each The adjacency relationship between the vertices can be parallelized by the data structure method, and the data storage amount is small when the matrix is used to store data.
- Matrix calculations in graph calculations can theoretically include matrix vector multiplication operations and matrix matrix multiplication operations.
- the existing matrix vector power operation such as the generalized Iterated Matrix-Vector multiplication (GIMV)
- GIMV generalized Iterated Matrix-Vector multiplication
- the elements and the elements of the vector are all merged after the two-two merge operation is completed, and the result of the two-two merge operation is globally merged.
- the embodiment of the invention provides a data processing system, a computing node and a data processing method, which can make the memory space occupied by the data processing smaller, and can reduce the calculation time.
- an embodiment of the present invention provides a data processing system, where the data processing system includes a management node and a first type of computing node.
- the management node is used to:
- FC x is the xth computing node of the at least two computing nodes, and x is a positive integer ;
- At least two computing nodes of the first type of computing nodes process the first processing task allocated by the management node in parallel;
- the computing node FC x is configured to acquire a data block M x and a data block V 1x in the data set to be processed according to the first processing task allocated by the management node, where the data block M x is m rows a matrix of n columns of data, the data block V 1x is a vector containing n-dimensional data, m and n are positive integers, and the value of n is not less than 2;
- first intermediate result V′ x being a vector including m-dimensional data
- the element in block V 1x , j is a variable, and the values of j are from 1 to n, respectively;
- the management node is further configured to obtain, according to a first intermediate result obtained by at least two computing nodes of the first type of computing nodes, a processing result of the to-be-processed data set.
- the data processing system further includes a second type of computing node, where the management node is specifically configured to:
- the computing node SC y is used to:
- the management node is specifically configured to:
- an embodiment of the present invention provides another data processing system, where the data processing system includes a management node and a first type of computing node.
- the management node is used to:
- FC x is the xth computing node of the at least two computing nodes, and x is a positive integer ;
- At least two computing nodes of the first type of computing nodes process the first processing task allocated by the management node in parallel;
- the computing node FC x is configured to acquire a data block M 1x and a data block M 2x in a data set to be processed according to a first processing task allocated by the management node, where the data block M 1x includes m rows n a matrix of column data, the data block M 2x is a matrix containing n rows and p columns of data, m, n and P are positive integers, and the value of n is not less than 2;
- the management node is further configured to obtain, according to a first intermediate result obtained by at least two computing nodes of the first type of computing nodes, a processing result of the to-be-processed data set.
- the data processing system further includes a second type of computing node, where the management node is specifically configured to:
- the computing node SC y is used to:
- the management node is specifically configured to:
- an embodiment of the present invention provides a computing node, including:
- a receiving module configured to receive a first processing task allocated by a management node in a data processing system, where the data processing system includes the computing node and the management node;
- An acquiring module configured to acquire, according to the first processing task allocated by the management node received by the receiving module, a data block M x and a data block V 1x in a data set to be processed, where the data block M x a matrix comprising m rows and n columns of data, the data block V 1x is a vector containing n-dimensional data, m and n are positive integers, and the value of n is not less than 2;
- the computing node comprises a physical machine, a virtual machine, or a central processing unit CPU.
- an embodiment of the present invention provides another computing node, including:
- a receiving module configured to receive a first processing task allocated by a management node in a data processing system, where the data processing system includes the computing node and the management node;
- An obtaining module configured to acquire, according to the first processing task that is allocated by the management node that is received by the receiving module, a data block M 1x and a data block M 2x in a data set to be processed, where the data block M 1x a matrix comprising m rows and n columns of data, the data block M 2x is a matrix comprising n rows and p columns of data, m, n and P are positive integers, and the value of n is not less than 2;
- a processing module configured to perform a merge combine2 operation and a reduction reduce2 operation on the data block M 1x and the data block M 2x to obtain a first intermediate result M′ x , the first intermediate result M′ x being included a matrix of m rows and p columns of data, the elements in the first intermediate result M' x are m' ij , i and j are variables, and the values of i are from 1 to m, respectively, and the values of j are from 1 to p, respectively.
- an embodiment of the present invention provides a data processing method, where the method is applied to a data processing system, where the data processing system includes a management node and a first type of computing node, and the method includes:
- the management node allocates a first processing task to at least two computing nodes including the FC x in the first type of computing node, where FC x is the xth computing node of the at least two computing nodes, And x is a positive integer, wherein at least two computing nodes of the first type of computing nodes process the first processing task allocated by the management node in parallel;
- the first computing node FC x according to the management node processing task allocation, to obtain data to be processed set of data blocks and data block M x V 1x, wherein said data blocks containing M x m rows and n columns of data a matrix, the data block V 1x is a vector containing n-dimensional data, m and n are positive integers, and the value of n is not less than 2;
- the management node obtains a processing result of the to-be-processed data set according to a first intermediate result obtained by at least two of the first type of computing nodes.
- the data processing system further includes at least one second type of computing node, the method further includes:
- the management node allocates a second processing task to the at least one computing node including the SC y in the second type of computing node according to the first intermediate result obtained by the at least two computing nodes of the first type of computing node
- SC y is the yth computing node of the at least one computing node, and y is a positive integer
- the computing node SC y obtains a first intermediate result obtained by at least two computing nodes of the first type of computing nodes according to the second processing task, where the first intermediate result obtained by the SC y is based on Determining a first intermediate result obtained by a data block located in the same row in the data set;
- the computing node SC y performs a reduce2 operation on the first intermediate result obtained by the SC y to obtain a second intermediate result V′′ y , wherein the second intermediate result V′′ y is a vector containing m-dimensional data;
- the management node obtains a processing result of the to-be-processed data set according to a second intermediate result obtained by at least one of the second type of calculation results.
- the data set further includes a data block V 2x , where the data block V 2x is a vector including m-dimensional data
- the method also includes:
- the management node allocates to the at least one computing node including the SC y in the second type of computing node according to the second intermediate result obtained by the at least one computing node including the SC y in the second type of computing node Third processing task;
- the computing node SC y acquires the data block V 2x in the data set according to the third processing task
- the embodiment provides another method of data processing, the method being applied to a data processing system, the data processing system comprising a management node and a first computing node, the method comprising:
- the management node allocates a first processing task to at least two computing nodes including the FC x in the first type of computing node, where FC x is the xth computing node of the at least two computing nodes, And x is a positive integer, wherein at least two computing nodes of the first type of computing nodes process the first processing task allocated by the management node in parallel;
- the computing node FC x acquires the data block M 1x and the data block M 2x in the data set to be processed according to the first processing task allocated by the management node, where the data block M 1x is data including m rows and n columns. a matrix, the data block M 2x is a matrix containing n rows and p columns of data, m, n and P are positive integers, and the value of n is not less than 2;
- the management node obtains a processing result of the to-be-processed data set according to a first intermediate result obtained by at least two of the first type of computing nodes.
- the data processing system further includes a second type of computing node, where the method further includes:
- the management node allocates a second processing task to the at least one computing node including the SC y in the second type of computing node according to the first intermediate result obtained by the at least two computing nodes of the first type of computing nodes
- SC y is the yth computing node of the at least one computing node, and y is a positive integer
- the computing node SC y obtains a first intermediate result obtained by at least two computing nodes of the first type of computing nodes according to the second processing task, where the first intermediate result obtained by the SC y is based on Determining the first intermediate result obtained by the data block M 1x in the same row and the data block M 2x in the same column;
- the computing node SC y performs a reduce2 operation on the first intermediate result obtained by the SC y to obtain a second intermediate result M ′ y , wherein the second intermediate result M′′ y is a data containing m rows and p columns of data. matrix;
- the management node obtains a processing result of the to-be-processed data set according to a second intermediate result obtained by at least one of the second type of calculation results.
- the data set further includes a data block M 3x , where the data block M 3x is a matrix including m rows and p columns of data.
- the method further includes:
- the management node allocates to the at least one computing node including the SC y in the second type of computing node according to the second intermediate result obtained by the at least one computing node including the SC y in the second type of computing node Third processing task;
- the computing node SC y acquires the data block M 3x in the data set according to the third processing task
- the computing node SC y SC y obtained from the second intermediate result M "y M 3x of the data block and performs assignment operations assign, to obtain a processing result of the data set to be processed.
- the data processing system, the computing node, and the data processing method provided by the embodiments of the present invention do not need to wait for all the merge operations to be completed before performing the merge operation and the reduction operation on the data block.
- the operation is performed, and the merge operation and the reduction operation are alternately performed, thereby saving the memory space occupied by the calculation and reducing the calculation time.
- FIG. 1 is a schematic diagram of a concept "graph" according to an embodiment of the present invention.
- FIG. 2 is still another schematic diagram of a concept "graph" according to an embodiment of the present invention.
- FIG. 3A is a schematic diagram showing an object relationship by a "directed graph"; and FIG. 3B is an adjacency matrix corresponding to the "directed graph" of FIG. 3A.
- Figure 4 is a schematic diagram of a matrix vector multiplication operation.
- Figure 5 is a schematic diagram of a matrix matrix multiplication operation.
- FIG. 6A is a schematic diagram showing an object relationship by a "weighted directed graph"; and FIG. 6B is an adjacency matrix corresponding to the "weighted directed graph" of FIG. 6A.
- Figure 7 is a schematic diagram of yet another matrix vector multiplication operation.
- FIG. 8 is a schematic block diagram of a data processing system according to an embodiment of the present invention.
- FIG. 9 is a schematic flowchart of data processing performed by a data processing system according to an embodiment of the present invention.
- FIG. 10 is a schematic diagram of a single source shortest path (SSSP) algorithm according to an embodiment of the present invention.
- SSSP single source shortest path
- FIG. 11 is a schematic block diagram of still another data processing system according to an embodiment of the present invention.
- FIG. 12 is a schematic flowchart of still another data processing system for data processing according to an embodiment of the present invention.
- FIG. 13 is a schematic diagram of still another data processing system performing probability propagation algorithm according to an embodiment of the present invention.
- FIG. 14 is a schematic block diagram of a computing node according to an embodiment of the present invention.
- FIG. 15 is a schematic block diagram of still another computing node according to an embodiment of the present invention.
- FIG. 16 is a schematic block diagram of still another computing node according to an embodiment of the present invention.
- FIG. 17 is a schematic block diagram of still another computing node according to an embodiment of the present invention.
- FIG. 18 is a schematic flowchart of a method for data processing according to an embodiment of the present invention.
- FIG. 19 is a schematic flowchart of still another method for data processing according to an embodiment of the present invention.
- Diagrams are used to describe the relationship between objects and objects.
- a graph consists of small dots and lines connecting the dots.
- the dots are called the vertices of the graph, and the lines connecting the dots are called edges.
- the sides can be divided into an undirected edge as shown in Figure 1 and a directed edge as shown in Figure 2.
- Figure 1 contains 1-6 six objects, the relationship between the six objects is represented by the undirected edges between them;
- Figure 2 contains 0-6 seven objects, seven objects between each other
- the relationship is represented by a directed edge between them, and when the relationship between objects is represented by a directed edge, the graph may be referred to as a directed graph.
- multiplication can mean generalized multiplication, and can also mean two multiplications.
- multiplication in matrix vector multiplication refers to generalized multiplication, that is, the multiplication of the elements of the matrix and the corresponding elements of the vector is not a multiplication of the traditional meaning, but may be addition, subtraction, multiplication, division, summation, quadrature, maximum
- Other processes, such as a value or a minimum value, are not limited in this embodiment of the present invention.
- the adjacency matrix uses a two-dimensional matrix to store the adjacencies between the vertices in the graph.
- 3A is a directed graph with six vertices V 1 -V 6, directed edges represent the relationship between the six vertices;
- FIG. 3B is a representation of a corresponding adjacency matrix.
- the graph can be parallelized by the adjacency matrix representation graph.
- the matrix can be divided into two types, a dense matrix and a sparse matrix.
- Dense matrices are generally represented by a vector or a two-dimensional vector (vector of a vector), which is divided into a main sequence of behavior and a main sequence of columns; a sparse matrix (without 0 elements) generally has three storage formats of COO, CSR, and CSC.
- the 0 elements in the matrix data representation (or, as the infinite value elements of the SSSP algorithm) are not stored when stored, and thus the representation of the matrix can reduce the amount of data storage.
- most of the operations of the graph can be transformed into matrix vector multiplication (ie, matrix and vector multiplication) operations, or matrix matrix multiplication (ie, matrix and matrix multiplication) operations.
- Matrix vector multiplication operations are based on a series of operations between a matrix and a vector. Examples of matrix vector multiplication operation shown in FIG calculated: YES Friends Find all V in FIG. 2 to FIG. 3A, FIG. 4 matrix-vector multiplication can be accomplished by way of FIG. First construct the query vector, because the lookup is the OutNeighbors of V 2 , so the second element of the vector is set to 1, the other elements are set to 0. Second, because the lookup is OutNeighbors, the adjacency matrix needs to be transposed Finally, multiply the transposed adjacency matrix with the constructed vector (as shown in Figure 4) to obtain the result vector. The sixth bit of the result vector is 1, which means the friend of V 2 Only V 6 can be verified from Figure 3A.
- Matrix matrix multiplication operations are based on a series of operations between a matrix and a matrix.
- Matrix matrix multiplication operation represents an example of graph calculation: calculating the number of common buddies (outgoing vertices) between two vertices in Fig. 3A, which can be realized by a matrix matrix multiplication operation.
- the adjacency matrix is constructed, as shown in the matrix of Fig. 3B, where the matrix is represented by A.
- the obtained value of the element b ij in the matrix B indicates how many common vertices of the i-th vertex and the j-th vertex have .
- the value of column 1 of row 3 indicates that vertex 3 has a common friend with vertex 1.
- the cluster environment includes multiple computing units for calculation. Matrix vector multiplication operations and matrix matrix multiplication operations are performed based on matrix partitioning.
- the matrix can be called distributed matrix after partitioning, and multiple distributed matrices can be used.
- Parallel processing is performed on the computing unit.
- M is an m-row n-column matrix
- M ij is a matrix block after M-segmentation
- V is an n-dimensional column vector
- V j is a vector block after V-blocking
- V' is an m-dimensional column vector
- the GIMV model extends the traditional matrix vector multiplication:
- combine2 is a merge operation of matrix elements and vector elements, the types of matrix elements and vector elements may be different, and the operations may be addition, subtraction, Multiply, divide, take the maximum value, take the minimum value, etc., but the embodiment of the present invention is not limited thereto, and the intermediate value x j is returned after combine2;
- combineAll is a merge operation on multiple values or a record set for a combine2 result x 1 ,..., x n of a row of the matrix, generally a function (for example, can be an accumulation operation), after combineAll Return intermediate value
- the GIMV model inputs the matrix M and the vector V. After three operations, the output vector V' has three operators:
- the GIMV model can represent more algorithms.
- FIG. 6A a weighted directed graph is shown
- FIG. 6B is a corresponding adjacency matrix M.
- the value in the matrix M is the distance weight of two points
- the distance from the vertex to itself is 0, and the unreachable is represented by infinity.
- the shortest distance from vertex 0 to other vertices can be achieved by iterative matrix vector multiplication. Each iteration represents the shortest distance obtained by adding 1 to the hop count (for example: from vertex 1 to vertex 2 represents 1 hop, from vertex 1 through vertex 2 to reach vertex 3 means 2 hops).
- the result vector V' obtained by the first multiplication means that the shortest distance from other vertices can be reached after one hop from vertex 0.
- the stopping condition of the SSSP algorithm iteration is: if the result vector V' obtained by a certain iteration does not change compared with the initial vector V of this iteration, the algorithm terminates. If the stop condition is not reached, the algorithm continues to iterate, that is, the result vector V' of this iteration is used as the initial vector V of the next iteration, and the next iteration is performed; the final result vector V' obtained by the algorithm is from the vertex 0. The shortest distance to each vertex.
- the execution flow of the GIMV model is: the operation of the combineAll operation on all the combine2 results of a row of the matrix, which can be performed after all the combine2 operations are completed. Therefore, it needs to occupy a matrix-sized intermediate memory space during the calculation process. Moreover, in a distributed environment, the system needs to perform a large amount of data transmission.
- the assign operation is the operation of the intermediate vector V and the initial vector V obtained by combineAll. Therefore, the two vector dimensions must be equal, and from another perspective, the matrix M must be a square matrix. And the vector of assign can only be the initial vector V, which also limits the representation range of the GIMV model.
- the present invention is directed to the disadvantages of the above schemes for improving the data processing method to reduce the intermediate memory occupation and the amount of data transmitted during the matrix vector multiplication operation of the data processing; further, based on the matrix vector multiplication operation of the present invention
- the principle of the matrix matrix multiplication operation model is proposed, so that more algorithms can be expressed.
- FIG. 8 shows a schematic block diagram of a data processing system 100 in accordance with an embodiment of the present invention.
- the data processing system 100 includes a management node 110 and a first type of computing node 120,
- the management node 110 is used to:
- FC x 121 is the xth computing node of the at least two computing nodes, and x is positive Integer
- At least two of the first type of computing nodes 120 process the first processing task allocated by the management node 110 in parallel;
- the computing node FC x 121 is configured to acquire, according to the first processing task allocated by the management node 110, the data block M x and the data block V 1x in the data set to be processed, where the data block M x is m rows and n a matrix of column data, the data block V 1x is a vector containing n-dimensional data, m and n are positive integers, and the value of n is not less than 2;
- the management node 110 is further configured to obtain a processing result of the to-be-processed data set according to the first intermediate result obtained by at least two computing nodes of the first type of computing node 120.
- the data processing system provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation. Alternate, which saves memory space for calculations and reduces computation time.
- Data processing system 100 can be applied to big data processing. Because of the large amount of data processed by big data, data is usually divided into blocks, and different data blocks are distributed to different computing nodes. Parallel computing to increase the efficiency of the calculation.
- Data processing system 100 includes a management node 110 and a first type of computing node 120.
- the management node 110 is configured to receive a data processing task, and divide the data processing task into a plurality of processing tasks, and distribute the processing tasks to the computing node.
- the management node 110 is further configured to receive an execution state of each processing node for its processing task to manage a process of data processing.
- the computing node is configured to receive the processing task delivered by the management node 110, and obtain a data block according to the processing task to perform a corresponding processing task.
- the computing node may acquire the data block execution processing task stored in the computing node, and may also acquire the data block execution processing task stored in the other computing node.
- the compute nodes can be classified according to the category of their processing tasks. For example, the first processing task is processed as the first type of node, and the second processing task is processed as the second type of node.
- the management node 110 is configured to allocate a first processing task to at least two computing nodes including the FC x 121 in the first type of computing node 120, where FC x 121 is the at least two calculations.
- the xth compute node in the node, x is a positive integer.
- At least two of the first type of computing nodes 120 process the first processing task assigned by the management node 110 in parallel.
- the computing node FC x 121 After receiving the first processing task assigned by the management node 110, the computing node FC x 121 acquires the data block M x and the data block V 1x in the data set to be processed according to the first processing task, wherein the data block M x is A matrix comprising m rows and n columns of data, the data block V 1x is a vector containing n-dimensional data, m and n are positive integers, and the value of n is not less than 2, and processing of the data block M x and the data block V 1x can be performed.
- the data block M x is A matrix comprising m rows and n columns of data
- the data block V 1x is a vector containing n-dimensional data
- m and n are positive integers
- the value of n is not less than 2
- the compute node FC x 121 performs a merge combine2 operation and a reduction reduce 2 operation on the data block M x and the data block V 1x to obtain a first intermediate result V′ x , the first intermediate result V′ x being an m-dimensional data Vector.
- the element, j is a variable, and the values of j are from 1 to n, respectively.
- the i-th row and the j-th column element of the data block M x and the j-th row element of the data block V 1x are combined to obtain an i-th row and a j-th column element of the data block M x and the data.
- the intermediate result x j corresponding to the jth row element of block V 1x .
- combine2 operation and reduce2 operation may be to calculate x 1 and x 2, for x 1 and x 2 for reduce2 operation; recalculated x 3, the x 1 and x 2 after the results reduce2 operation x 3 for reduce2 operation; ... ... until all the intermediate results x j corresponding to the i-th row of the data block M x are subjected to the reduce2 operation.
- the reduce2 operation does not wait until all the combine2 operations have been completed, but the combine2 operation and the reduce2 operation alternate. In this way, the intermediate result x j that passes the reduce2 operation in the calculation process can be deleted without storing all the results of the combine2 operation in the memory, thereby saving memory space.
- the above process is essentially an update process, that is, the intermediate result of the two x j after the reduce2 operation is first obtained by the reduce2 operation, and then the intermediate result is obtained by performing the reduce2 operation with other x j or other intermediate results. Continuously update intermediate results.
- the reduce2 operation may be addition, subtraction, multiplication, division, maximum, minimum, etc., but the embodiment of the present invention is not limited thereto.
- the reduce2 operation processes the intermediate results (such as x 1 ,..., x n ) corresponding to each element of a row of the matrix, and does not need to wait until all x 1 ,...,x n is calculated, but During the process of calculating the intermediate result x j , the reduce2 processing is gradually expanded.
- the advantage of the reduce2 operation is that there is no need to care about the order of the elements performing the reduce2 operation in the calculation process, that is, regardless of the order of the elements in the reduce2 operation, the obtained result is unique.
- an array of it Array(0,1,2,3,4,5) sums the array and can be expressed as it.reduce(_+_).
- the value obtained by adding data from the left to the right is summed with reduce2 until the end result is the same.
- the management node 110 is further configured to obtain a processing result of the to-be-processed data set according to the first intermediate result obtained by the at least two computing nodes of the first type of computing node 120. After the first type of computing node 120 completes the first processing task, the management node 110 is notified, and the management node 110 obtains the data set of the to-be-processed data set according to the first intermediate result obtained by at least two computing nodes of the first type of computing node 120.
- the processing result is used, or the first intermediate result is used as the basic data of the other processing tasks, and the processing task using the first intermediate result for calculation is sent to the corresponding computing node.
- the data processing system provided by the embodiment of the present invention performs a merge operation on a data block and In the reduction operation, it is not necessary to wait for all the merge operations to be completed before performing the reduction operation, but the merge operation and the reduction operation are alternately performed, thereby saving the memory space occupied by the calculation and reducing the calculation time.
- the data processing system 100 further includes a second type of computing node, where the management node 110 is specifically configured to:
- the compute node SC y is used to:
- the management node 110 is specifically configured to:
- the management node 110 may be at least according to the first type of computing node 120.
- a first intermediate result obtained by the two computing nodes assigning a second processing task to at least one computing node including the SC y in the second type of computing node, wherein SC y is the yth computing in the at least one computing node Node, y is a positive integer.
- the computing node SC y is configured to obtain, according to the second processing task, a first intermediate result obtained by at least two computing nodes in the first type of computing node 120, wherein the first intermediate result obtained by the SC y is based on the to-be-processed The first intermediate result obtained by the data block in the same row in the data set.
- the second processing task performs a reduce2 operation on the first intermediate result obtained by the SC y to obtain a second intermediate result V" y , wherein the second intermediate result V" y is a vector containing m-dimensional data.
- the management node 110 is specifically configured to obtain a processing result of the to-be-processed data set according to a second intermediate result obtained by at least one of the second type of computing nodes.
- the data set further includes a data block V 2x , where the data block V 2x is a vector containing m-dimensional data, and the management node 110 is further configured to:
- the compute node SC y is also used to:
- SC y obtained in the second intermediate result V "y and V 2x perform the block assignment assign operation to obtain the processing result data set to be processed.
- the second intermediate result obtained after the first intermediate result obtained by the data block in which the data to be processed is concentrated in the same row is subjected to the reduce2 operation, and the assign operation may be performed to obtain the processing result of the to-be-processed data set.
- the second intermediate result V" y and the data block V 2x are vectors containing m-dimensional data, and the corresponding element performs an assign operation to obtain a result vector, and the result vector is an m-dimensional column vector.
- the assignment processing can be described above.
- V 3 ⁇ *M*V 1 + ⁇ *V 2 (Equation 4)
- Equation 4 represents that the weight V 2 is introduced in the result vector V 3 obtained by the data processing system 100 of the embodiment of the present invention, so that the assign processing is not limited to the vector used for multiplication, and therefore can also support the non-existing GIMV model.
- the matrix multiplication operation of the square matrix expands the range that the matrix vector multiplication operation can represent.
- the "vector for adding" (corresponding to the vector V 2 in the upper bit) is often set to (1-d)/N to participate in the operation.
- the (1-d)/N vector can be used to adjust the pagerank value of each vertex in the corresponding graph, so that the pagerank value of each vertex is more in line with the real situation.
- the pagerank value can be expressed as R, specifically Equation 5.
- the data block V 1x and the data block V 2x are the same data block. I.e., assign a data block for performing operation of the data block M x V 1x operation and data blocks for the same data block V 2x.
- At least two computing nodes of the second type of computing nodes process the second processing task allocated by the management node in parallel.
- the data set to be processed is divided into rows and columns, at least two second-class computing nodes are required to process the second processing task; when the data set to be processed is only partitioned by columns, A second type of computing node is needed; when the data set to be processed is only partitioned by row, the second type of computing node is not needed, that is, the processing of the second processing task is not required.
- the management node, the first type of computing node, and the second type of computing node may be a physical machine, a virtual machine, or a central processing unit CPU, etc., which is not limited by the embodiment of the present invention.
- FIG. 9 shows a schematic flow chart of data processing performed by data processing system 100 in accordance with an embodiment of the present invention. As shown in FIG. 9, data processing by data processing system 100 includes the following steps:
- the data block V 2 ' is distributed, and the data block V 2 ' is divided into blocks, and the divided data block V 2 ' is broadcasted.
- the data block V 1 ' is distributed, and the data block V 1 ' is divided into blocks, and the divided data block V 1 ' is broadcasted.
- the tiled matrices and vectors in S202 through S204 are correspondingly distributed to at least two compute nodes, which are distributed.
- S205 Perform local combine2 processing and partial reduce2 processing on each computing node.
- the data block M x and the data block V 1x perform the combine2 process, and before obtaining all the intermediate results corresponding to the data block M x and the data block V 1x , the intermediate result is subjected to reduce2 processing to obtain the first intermediate result; and then the first intermediate result is obtained. And the newly obtained intermediate result is subjected to reduce2 processing to obtain a new first intermediate result.
- the final first intermediate result is that all the intermediate results corresponding to the data block M x and the data block V 1x have undergone the result of reduce2 processing.
- Each computing node performs global data transmission on the first intermediate result obtained by S205 to concentrate the first intermediate result on one computing node.
- the method of the embodiment of the present invention performs data reduction after global data transmission, and the amount of data transmitted is greatly reduced compared to the existing matrix vector multiplication operation.
- the second intermediate result V "element y corresponding elements of the data block is V 2x assign to give the element of the result vector, whereby the result vector.
- the matrix in the SSSP algorithm is the matrix after the adjacency matrix M in FIG. 6B is transposed, and the vector V 1 and the vector V 2 are both V in FIG. 7 .
- the adjacency matrix M in FIG. 6B is first transposed and then divided, and the initial vector V is divided. Then, the block of the matrix and the corresponding block of V are subjected to combine2 processing and reduce2 processing.
- the reduce2 processing is performed when all the first intermediate results of the combine2 processing of the block of the matrix and the corresponding block of V have not been obtained, that is, the combine2 processing and the reduce2 processing are alternately performed.
- the first intermediate result corresponding to each matrix block can be obtained.
- the intermediate vector V can be obtained by performing reduce2 processing on the first intermediate result corresponding to the matrix block located in the same row.
- the intermediate vector V and V are assigned to obtain a result vector.
- the data processing system provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation. Alternate, which saves memory space for calculations and reduces computation time.
- FIG. 11 shows a schematic block diagram of a data processing system 300 in accordance with another embodiment of the present invention.
- the data processing system 300 includes a management node 310 and a first type of computing node 320.
- the management node 310 is used to:
- FC x is the xth computing node of the at least two computing nodes, and x is a positive integer
- At least two of the first type of computing nodes 320 process the first processing task allocated by the management node 310 in parallel;
- the computing node FC x is configured to acquire the data block M 1x and the data block M 2x in the data set to be processed according to the first processing task allocated by the management node 310, where the data block M 1x is data including m rows and n columns a matrix, the data block M 2x is a matrix containing n rows and p columns of data, m, n and P are positive integers, and the value of n is not less than 2;
- first intermediate result M′ x Performing a merge combine2 operation and a reduction reduce2 operation on the data block M 1x and the data block M 2x to obtain a first intermediate result M′ x , the first intermediate result M′ x being a matrix including m rows and p columns of data
- the management node 310 is further configured to obtain a processing result of the to-be-processed data set according to the first intermediate result obtained by at least two computing nodes of the first type of computing node 320.
- the data processing system provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation. Alternate, which saves memory used by calculations Between, reduce the calculation time.
- the data processing system 300 can be applied to big data processing. Because of the large amount of data processed by big data, the data is usually divided into blocks, and different data blocks are distributed to different computing nodes. Parallel computing to increase the efficiency of the calculation.
- the data processing system 300 includes a management node 310 and a first type of computing node 320.
- the management node 310 is configured to receive a data processing task, and divide the data processing task into a plurality of processing tasks, and distribute the processing tasks to the computing node.
- the management node 310 is further configured to receive an execution state of each processing node for its processing task to manage a process of data processing.
- the computing node is configured to receive the processing task delivered by the management node 310, and obtain a data block according to the processing task to perform a corresponding processing task.
- the computing node may acquire the data block execution processing task stored in the computing node, and may also acquire the data block execution processing task stored in the other computing node.
- the compute nodes can be classified according to the category of their processing tasks. For example, the first processing task is processed as the first type of node, and the second processing task is processed as the second type of node.
- the management node 310 is configured to allocate a first processing task to at least two computing nodes including the FC x 321 in the first type of computing node 320, where FC x 321 is the at least two calculations.
- the xth compute node in the node, x is a positive integer.
- At least two of the first type of computing nodes 320 process the first processing task assigned by the management node 310 in parallel.
- the computing node FC x 321 After receiving the first processing task assigned by the management node 310, the computing node FC x 321 acquires the data block M 1x and the data block M 2x in the data set to be processed according to the first processing task, where the data block M 1x is A matrix comprising m rows and n columns of data, the data block M 2x is a matrix containing n rows and p columns of data, m, n and P are positive integers, and the value of n is not less than 2, and the data block M 1x and the data block can be The processing of M 2x is treated as a matrix matrix multiplication operation.
- the compute node FC x 321 performs a merge combine2 operation and a reduction reduce 2 operation on the data block M 1x and the data block M 2x to obtain a first intermediate result M′ x , the first intermediate result M′ x being including m rows p A matrix of column data.
- the element, k is a variable, and the values of k are from 1 to n, respectively.
- the values of the elements m i ' , j , i are from 1 to m, respectively, and the values of j are from 1 to p, respectively, and the first intermediate result M' x can be obtained.
- the combine2 operation and the reduce2 operation may be to first calculate x i1j and x i2j , and perform reduce2 operations on x i1j and x i2j ; then calculate x i3j , perform the reduce 2 operation on x i1j and x i2j and perform reduce2 operation on x i3j ; ...; i-th row until the data block and the data block M x M 2x corresponding to the j-th column intermediate result x ikj reduce2 through all operations.
- the reduce2 operation does not wait until all the combine2 operations have been completed, but the combine2 operation and the reduce2 operation alternate. In this way, the intermediate result x j that passes the reduce2 operation in the calculation process can be deleted without storing all the results of the combine2 operation in the memory, thereby saving memory space.
- the above process is essentially an update procedure, i.e. first intermediate result obtained in the two x ikj reduce2 by reduce2 operation, then the intermediate result obtained by further reduce2 x ikj other operations or other intermediate results, Continuously update intermediate results.
- the reduce2 operation may be addition, subtraction, multiplication, division, maximum, minimum, etc., but the embodiment of the present invention is not limited thereto.
- the reduce2 operation processes the intermediate results (such as x i1j , ..., x inj ) corresponding to each element of a row of the matrix, and does not need to wait until all x i1j , ..., x inj is calculated, and then the process of calculating the intermediate result x ikj gradually expand reduce2 process.
- the advantage of the reduce2 operation is that there is no need to care about the order of the elements performing the reduce2 operation in the calculation process, that is, regardless of the order of the elements in the reduce2 operation, the obtained result is unique.
- an array of it Array(0,1,2,3,4,5) sums the array and can be expressed as it.reduce(_+_).
- the value obtained by adding data from the left to the right is summed with reduce2 until the end result is the same.
- the management node 310 is further configured to obtain a processing result of the to-be-processed data set according to the first intermediate result obtained by the at least two computing nodes of the first type of computing node 320. After the first type of computing node 320 completes the first processing task, the management node 310 is notified, and the management node 310 obtains the to-be-processed data set according to the first intermediate result obtained by at least two computing nodes of the first type of computing node 320.
- the processing result is used, or the first intermediate result is used as the basic data of the other processing tasks, and the processing task using the first intermediate result for calculation is sent to the corresponding computing node.
- the data processing system provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation. Alternate, which saves memory space for calculations and reduces computation time.
- the data processing system 300 further includes a second type of computing node, where the management node 310 is specifically configured to:
- the compute node SC y is used to:
- the management node 310 is specifically configured to:
- the management node 310 may allocate a second processing task to the at least one computing node including the SC y in the second type of computing node according to the first intermediate result obtained by the at least two computing nodes of the first type of computing node 320.
- SC y is the yth compute node of the at least one compute node
- y is a positive integer.
- the computing node SC y is configured to obtain, according to the second processing task, a first intermediate result obtained by at least two computing nodes in the first type of computing node 320, where the first intermediate result obtained by the SC y is according to the data block M 1x , M 1x is the data block in the same row of the data to be processed, and the data block M 2x , M 2x is the first intermediate result obtained by the data block in the same column of the data set to be processed.
- the second processing task performs a reduce2 operation on the first intermediate result obtained by the SC y to obtain a second intermediate result M" y , wherein the second intermediate result M" y is a matrix containing m rows and p columns of data.
- the data block M 1x , M 1x is a data block in which the data to be processed is located in the same row
- the data block M 2x , M 2x performs the reduce2 operation on the two first intermediate results obtained by the data blocks in the same column of the data to be processed, and performs the reduce2 operation on the result of the reduce2 operation and the other first intermediate results.
- the management node 110 is specifically configured to obtain a processing result of the to-be-processed data set according to a second intermediate result obtained by at least one of the second type of computing nodes.
- the data set further comprises M 3x data block, the data block M 3x matrix comprising m rows and p columns of data, the management node 310 is further configured to:
- the compute node SC y is also used to:
- the second intermediate result obtained after the first intermediate result obtained by the data block in which the data set M 1x is located in the same row and the M 2x is located in the same column is subjected to the reduce2 operation may also be subjected to an assign operation to obtain The processing result of the data set to be processed.
- the second intermediate result M" y and the data block M 3x are each a matrix containing m rows and p columns of data, and the corresponding element performs an assign operation to obtain a result vector, which is a matrix containing m rows and p columns of data. Processing can be handled as assigned above.
- the second type of computing node in the data processing system 300 is further configured to perform row processing on the rth row of the processing result of the data set to be processed, the row being processed as an element for the rth row. deal with.
- the result matrix D can be further processed, for example, the elements of the rth row of the result matrix D are subjected to reduction processing.
- Formula can be expressed as reduceRow(D i1 ,...,D in ), where reduceRow processing can take the maximum value, take the minimum value, take the largest Q values, take the smallest Q values, sum the data of the row, etc.
- reduceRow processing can take the maximum value, take the minimum value, take the largest Q values, take the smallest Q values, sum the data of the row, etc.
- the embodiment of the present invention does not limit this.
- the result obtained by the reduceRow processing may still be stored in the corresponding matrix form, for example, the maximum processing of the ith row of the result matrix D, the maximum value being D i1 , the ith row of the stored matrix
- the first column stores the value D i1
- the other columns store the value 0 (or do not store 0).
- the result obtained by the reduceRow process may store only the value obtained after the process, for example, the i-th row of the result matrix D is subjected to a summation process, and the result of the summation is Y, then the value Y is stored, which is in the embodiment of the present invention.
- the storage method is not limited.
- the second type of compute nodes in data processing system 300 are also used for column processing of column c of the processing result of the data set to be processed, the column processing being performed for the elements of the column c. deal with. To avoid repetition, the text will not go into details.
- the data block M 1x is a matrix of 3 rows and 4 columns
- the data block M 2x is a matrix of 4 rows and 4 columns.
- a matrix of 3 rows and 4 columns is obtained.
- the matrix of 3 rows and 4 columns and the data block M 3x are subjected to evaluation processing to obtain a result matrix, so the data block M 1x and the data block M 3x can be the same data block.
- n m
- the data block M 2x and the data block M 3x are the same data block. It should be understood that, in the embodiment of the present invention, at least one of the data block M 1x , the data block M 2x , and the data block M 3x that performs the operation may be transposed to satisfy the operation. Therefore, the data block M 2x and the data block M 3x are the same data block.
- At least two computing nodes when at least two computing nodes are included in the second type of computing node, at least two computing nodes of the second type of computing nodes process the second processing task allocated by the management node in parallel.
- the management node, the first type of computing node, and the second type of computing node comprise a physical machine, a virtual machine, or a central processing unit CPU.
- FIG. 12 shows a schematic flow diagram of a method 400 of data processing by data processing system 300 in accordance with an embodiment of the present invention. As shown in FIG. 12, the method 400 includes the following steps:
- a matrix block the data blocks M 1, M 2 blocks of data divided into blocks.
- the data block M 1 is divided into a plurality of data blocks M 1x
- the data block M 1x is a matrix containing m rows and n columns of data
- the data block M 2 is divided into a plurality of data blocks M 2x
- the data block M 2x is composed of n rows A matrix of p-column data.
- S404 Perform local combine2 processing and local reduce2 processing on each of the first type of computing nodes.
- Data block and the data block M 1x M 2x for combine2 process until all the intermediate results of the data block M 1x row and a respective column blocks corresponding to the M 2x, intermediate results to obtain the first intermediate result reduce2 Then, the first intermediate result and the newly obtained intermediate result are subjected to reduce2 processing to obtain a new first intermediate result.
- the first intermediate result is that all the intermediate results corresponding to a certain row of the moment data block M 1x and the corresponding column of the data block M 2x have been subjected to the result of reduce2 processing. Further, the results similarly obtained for all combinations of the first intermediate a row of data blocks and data blocks M 1x M 2x columns corresponding to, and form a first intermediate result matrix.
- the data block M 1 M blocks of the same row of data corresponding to a first result of at least two intermediate blocks corresponding to the same column 2 reduce2 performed to give a second intermediate result.
- a plurality of second intermediate results form an intermediate matrix X.
- the intermediate matrix X is partitioned and distributed to at least one compute node.
- the data block M 3 is divided into blocks and distribute the distribution data block M 3x data block M 3 to the computing node matrix of a block intermediate matrix X are located, the data block M 3x comprising m rows and p columns of data Matrix.
- each matrix block of the result matrix D is subjected to reduceRow processing by a block.
- S410 Perform data transmission, transmit the result obtained in S409, and perform reduceRow processing on the result of the matrix block corresponding to the same row to obtain a matrix Y.
- each matrix block of the matrix Y is subjected to reduceCol processing in columns.
- S412 Perform data transmission, transmit the result obtained in S411, and perform reduceCol processing on the result of the matrix block corresponding to the same column to obtain a matrix Z.
- the data processing system provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation. Alternate, which saves memory space for calculations and reduces computation time.
- Probability propagation is a type of recommendation algorithm. For a "user-project" interactive record database, several items that the user may be interested in are recommended for each user. Probabilistic propagation is based on global data, which calculates the potential interest items of all users at once. The algorithm has a solid theoretical basis: probability propagation is derived from the physics "energy conservation law". The operation of the matrix is similar to the propagation of energy between different materials, and the resulting interest matrix corresponds to the original matrix. The sum is exactly equal, and the sum of the corresponding columns is also equal, reflecting the conservation of energy.
- the probability propagation algorithm can be implemented by matrix operation.
- the matrix implementation of the existing probability propagation algorithm can obtain the “movie-to-user attraction matrix” and the “inter-similarity matrix between users”; then, by matrix matrix multiplication operation, "The new attractiveness matrix of the movie to the user”; then, screen out the movies that the user has already seen; finally, only recommend movies that have not been seen by the topk for each user.
- the probability propagation algorithm only recommends a limited number of movies for each user, and the resulting matrix is sparse (more elements are 0). In general, the amount of data is not large (in this scenario, 0 elements are not stored).
- the “New Attraction of Movies to Users” matrix obtained by the existing schemes in the calculation process is often very dense and the amount of data is very large. This results in a large amount of intermediate memory usage and a large amount of data transfer in the system.
- the probability propagation algorithm implemented by the matrix matrix multiplication operation in the embodiment of the present invention wherein the number of movies in the original data set is m, the number of users is n, and the topk movie is recommended for each user.
- the first matrix A is a "movie-to-user attraction" matrix of m rows and n columns
- the second matrix B is n rows and n columns "interest similarity between users” matrix
- the third matrix C and the number for assign A matrix A is the same matrix.
- the formula for recommending movies that have not been seen by the topk for each user is:
- the specific calculation process is as follows: First, the elements of the first matrix A and the elements of the second matrix B are subjected to combine2 processing and reduce2 processing.
- the reduce2 processing is performed when all intermediate results of the combine2 processing of the elements of the first matrix A and the elements of the second matrix B have not been obtained, that is, the combine2 processing and the reduce2 processing are alternately performed.
- a first intermediate result corresponding to the second matrix B of the first matrix A can be obtained.
- the first intermediate result and the third matrix C for assign are subjected to an assign process to obtain a result matrix D.
- the reduceCol processing is performed on each column of the result matrix D.
- Assign processing is to take the "screening" process, That is, if the element at the corresponding position in the third matrix C of the assignment processing is not zero, the element is screened out (the element is disposed 0), that is, if the user has not watched the movie, the data is retained if the user views After the movie, the data is filtered out (this element handles 0) for performing reduceCol processing.
- the main flow chart of the probability propagation algorithm implemented by the matrix matrix multiplication operation of the embodiment of the present invention is shown in FIG. Performing combine2 and reduce2 processing on one row of the first matrix A and one column of the second matrix B to obtain a value Then, since the value of the corresponding position of the third matrix C for the assignment processing is 1, the assignment result matrix D corresponds to an element value of 0 (if the 0 element in the system is not saved, the corresponding combine2 and reduce2 processing may not Calculation). Finally, for the obtained elements of the same column, the topk processing is performed to obtain a movie with a degree of attraction topk in a movie that the user has not seen.
- Matrix matrix multiplication operation using a probability propagation algorithm in calculating "movie In the process of “new attraction” to the user, it is possible to simultaneously screen out the movies that have already been viewed (even without directly counting the records that need to be screened), and at the same time perform the recommended operation of the topk movie of the user score ranking, thereby reducing Intermediate memory usage, as well as system data transfer volume.
- the isCompute operator may be introduced in the process of the matrix vector multiplication operation and the matrix matrix multiplication operation in the embodiment of the present invention to determine whether the row needs to be calculated. If you do not need to calculate, skip the line and continue to calculate the next line; if you need to calculate, perform the combine2 operation and the reduce2 operation according to the algorithm.
- the isCompute operator in the matrix vector multiplication operation may be a column vector equal to the number of rows of the data block M x
- the isCompute operator in the matrix matrix multiplication operation may be a matrix, which is not limited in the embodiment of the present invention.
- the performance of the prior art extended GIMV model and the matrix vector multiplication operation of the embodiment of the present invention is compared on a general parallel computing framework spark.
- the test environment is a cluster of 3 machines (3 RH2285, 12 cores, 24 threads, 192g memory, 100g configuration).
- the test data is a wiki_talk data set, and the test result indicates that the calculation time of the extended GIMV model of the prior art exceeds 3600 s, and the matrix vector multiplication operation of the embodiment of the present invention uses 340 s.
- the data set size and test results of the test are shown in Table 1.
- the test data are data sets of Interactive Network Television (IPTV) and Netflix (Nasdaq NFLX, NETFLIX). It can be seen from the test results that the embodiment of the present invention can effectively reduce the intermediate memory occupation and shorten the calculation time, so that a larger data set can be processed.
- FIGS. 1 through 13 A data processing system according to an embodiment of the present invention is described in detail above with reference to FIGS. 1 through 13, and a computing node in a data processing system according to an embodiment of the present invention will be described in detail below with reference to FIGS. 14 through 15.
- FIG. 14 illustrates a computing node 500 that belongs to a data processing system, the data processing system further includes a management node, and the computing node 500 includes:
- the receiving module 501 is configured to receive a first processing task allocated by the management node
- the obtaining module 502 is configured to acquire the data block M x and the data block V 1x in the data set to be processed according to the first processing task allocated by the management node received by the receiving module 501, where the data block M x is included a matrix of m rows and n columns of data, the data block V 1x is a vector containing n-dimensional data, m and n are positive integers, and the value of n is not less than 2;
- the element in block V 1x , j is a variable, and the values of j are from 1 to n, respectively.
- the computing node is a physical machine, a virtual machine, or a central processing unit CPU, which is not limited in this embodiment of the present invention.
- the computing node provided by the embodiment of the present invention does not need to wait for all the merge operations to complete the reduction operation after performing the merge operation and the reduction operation on the data block, but the merge operation and the reduction operation are alternated. This can save the memory space occupied by the calculation and reduce the calculation time.
- Figure 15 illustrates a computing node 600 that is part of a data processing system, the data processing system further including a management node, the computing node comprising:
- the receiving module 601 is configured to receive a first processing task allocated by the management node
- the obtaining module 602 is configured to obtain the data block M 1x and the data block M 2x in the data set to be processed according to the first processing task allocated by the management node received by the receiving module 601, where the data block M 1x is included a matrix of m rows and n columns of data, the data block M 2x is a matrix containing n rows and p columns of data, m, n and P are positive integers, and the value of n is not less than 2;
- the computing node is a physical machine, a virtual machine, or a central processing unit CPU, which is not limited in this embodiment of the present invention.
- the computing node provided by the embodiment of the present invention does not need to wait for all the merge operations to complete the reduction operation after performing the merge operation and the reduction operation on the data block, but the merge operation and the reduction operation are alternated. This can save the memory space occupied by the calculation and reduce the calculation time.
- an embodiment of the present invention further provides a computing node 700, which includes a processor 701, a memory 702, a bus system 703, and a transceiver 704.
- the processor 701, the memory 702, and the transceiver 704 pass The bus system 703 is connected.
- the memory 702 is for storing instructions
- the processor 701 is for executing instructions stored by the memory 702.
- the transceiver 704 is configured to:
- the processor 701 is configured to:
- the computing node provided by the embodiment of the present invention does not need to wait for all the merge operations to complete the reduction operation after performing the merge operation and the reduction operation on the data block, but the merge operation and the reduction operation are alternated. This can save the memory space occupied by the calculation and reduce the calculation time.
- the processor processor 701 may be a central processing unit (CPU), and the processor processor 701 may also be other general-purpose processors, digital signal processors (Digital Signal) Processor, DSP), Application Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA) or other programmable logic device, discrete Gate or transistor logic, discrete hardware components, etc.
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the memory 702 can include read only memory and random access memory and provides instructions and data to the processor 701. A portion of the memory 702 can also include a non-volatile random access memory. For example, the memory 702 can also store information of the device type.
- the bus system 703 may include a power bus, a control bus, a status signal bus, and the like in addition to the data bus. However, for clarity of description, various buses are labeled as bus system 703 in the figure.
- each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 701 or an instruction in a form of software.
- the steps of the method disclosed in the embodiments of the present invention may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
- the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
- the storage medium is located in the memory 702, and the processor 701 reads the information in the memory 702 and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.
- the computing node 700 is a physical machine, a virtual machine, or a central processing unit CPU.
- computing node 700 may correspond to the main body of the method in the embodiment of the present invention, and may also correspond to the computing node 500 according to an embodiment of the present invention, and the foregoing modules of the computing node 700 are And other operations and/or functions are corresponding processes for implementing the data processing method, and are not described herein for brevity.
- the computing node provided by the embodiment of the present invention does not need to wait for all the merge operations to complete the reduction operation after performing the merge operation and the reduction operation on the data block, but the merge operation and the reduction operation are alternated. This can save the memory space occupied by the calculation and reduce the calculation time.
- an embodiment of the present invention further provides a computing node 800, which includes a processor 801, a memory 802, a bus system 803, and a transceiver 804.
- the processor 801, the memory 802, and the transceiver 804 pass The bus system 803 is connected.
- the memory 802 is for storing instructions
- the processor 801 is for executing instructions stored by the memory 802.
- the transceiver 804 is used to:
- the data block M 1x is a matrix including m rows and n columns of data
- the data block M 2x is a matrix containing n rows and p columns of data
- m, n and P are positive integers, and the value of n is not less than 2;
- the processor 801 is configured to:
- first intermediate result M′ x Performing a merge combine2 operation and a reduction reduce2 operation on the data block M 1x and the data block M 2x to obtain a first intermediate result M′ x , the first intermediate result M′ x being a matrix including m rows and p columns of data
- the computing node provided by the embodiment of the present invention does not need to wait for all the merge operations to complete the reduction operation after performing the merge operation and the reduction operation on the data block, but the merge operation and the reduction operation are alternated. This can save the memory space occupied by the calculation and reduce the calculation time.
- the processor processor 801 may be a central processing unit (CPU), and the processor processor 801 may also be other general-purpose processors and digital signal processors (Digital Signal). Processor, DSP), Application Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc.
- the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
- the memory 802 can include read only memory and random access memory and provides instructions and data to the processor 801. A portion of the memory 802 may also include a non-volatile random access memory. For example, the memory 802 can also store information of the device type.
- the bus system 803 may include a power bus, a control bus, a status signal bus, and the like in addition to the data bus. However, for clarity of description, various buses are labeled as bus system 803 in the figure.
- each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 801 or an instruction in a form of software.
- the steps of the method disclosed in the embodiments of the present invention may be directly implemented as hardware processor execution, or use hardware and software module groups in the processor.
- the execution is completed.
- the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
- the storage medium is located in memory 802, and processor 801 reads the information in memory 802 and, in conjunction with its hardware, performs the steps of the above method. To avoid repetition, it will not be described in detail here.
- the computing node 800 is a physical machine, a virtual machine, or a central processing unit CPU.
- computing node 800 may correspond to the main body of the method in the embodiment of the present invention, and may also correspond to the computing node 600 according to an embodiment of the present invention, and the above-mentioned modules of the node 800 are calculated. And other operations and/or functions are corresponding processes for implementing the data processing method, and are not described herein for brevity.
- the computing node provided by the embodiment of the present invention does not need to wait for all the merge operations to complete the reduction operation after performing the merge operation and the reduction operation on the data block, but the merge operation and the reduction operation are alternated. This can save the memory space occupied by the calculation and reduce the calculation time.
- a data processing system and a computing node according to an embodiment of the present invention are described in detail above with reference to FIGS. 1 through 17, and a method of data processing according to an embodiment of the present invention will be described in detail below with reference to FIGS. 18 through 19.
- FIG. 18 illustrates a method 900 of data processing in accordance with an embodiment of the present invention, wherein the method 900 is applied to a data processing system including a management node and a first computing node, the method 900 including :
- the management node allocates a first processing task to at least two computing nodes including the FC x in the first type of computing node, where FC x is the xth computing node of the at least two computing nodes, where a positive integer, wherein at least two of the first type of computing nodes process the first processing task allocated by the management node in parallel;
- the computing node FC x acquires the data block M x and the data block V 1x in the data set to be processed according to the first processing task allocated by the management node, where the data block M x is data including m rows and n columns. a matrix, the data block V 1x is a vector containing n-dimensional data, m and n are positive integers, and the value of n is not less than 2;
- the management node obtains a processing result of the to-be-processed data set according to the first intermediate result obtained by at least two computing nodes in the first type of computing node.
- the data processing method provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation.
- the operations are alternated, which saves memory space occupied by calculations and reduces calculation time.
- the data processing system further includes at least one second type of computing node
- the method 900 further includes:
- the management node allocates a second processing task to the at least one computing node including the SC y in the second type of computing node according to the first intermediate result obtained by the at least two computing nodes of the first type of computing node, where SC y is the yth computing node of the at least one computing node, and y is a positive integer;
- the computing node SC y obtains a first intermediate result obtained by at least two computing nodes of the first type of computing node according to the second processing task, where the first intermediate result obtained by the SC y is based on the to-be-processed data set The first intermediate result obtained by the data block located in the same row;
- the computing node SC y performs a reduce2 operation on the first intermediate result obtained by the SC y to obtain a second intermediate result V′′ y , wherein the second intermediate result V′′ y is a vector containing m-dimensional data;
- the management node obtains a processing result of the to-be-processed data set according to a second intermediate result obtained by at least one of the second type of calculation results.
- the data set further includes a data block V 2x , where the data block V 2x is a vector including m-dimensional data
- the method 900 further includes:
- the management node allocates a third process to the at least one computing node including the SC y in the second type of computing node according to the second intermediate result obtained by the at least one computing node including the SC y in the second type of computing node task;
- the computing node SC y acquires the data block V 2x in the data set according to the third processing task
- the computing node SC y SC y obtained in the second intermediate result V "y and V 2x perform the block assignment assign operation to obtain the processing result data set to be processed.
- n n
- the data block V 1x and the data block V 2x are the same data block.
- At least two computing nodes when at least two computing nodes are included in the second type of computing node, at least two computing nodes of the second type of computing nodes process the second processing task allocated by the management node in parallel.
- the management node, the first type of computing node, and the second type of computing node comprise a physical machine, a virtual machine, or a central processing unit CPU.
- the data processing method provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation.
- the operations are alternated, which saves memory space occupied by calculations and reduces calculation time.
- FIG. 19 illustrates a method 1000 of data processing in accordance with an embodiment of the present invention, wherein the method 1000 is applied to a data processing system including a management node and a first computing node, the method 1000 including :
- the management node allocates a first processing task to at least two computing nodes including the FC x in the first type of computing node, where FC x is the xth computing node of the at least two computing nodes, where a positive integer, wherein at least two of the first type of computing nodes process the first processing task allocated by the management node in parallel;
- the computing node FC x acquires a data block M 1x and a data block M 2x in a data set to be processed according to a first processing task allocated by the management node, where the data block M 1x is a matrix including m rows and n columns of data.
- the data block M 2x is a matrix containing n rows and p columns of data, m, n and P are positive integers, and the value of n is not less than 2;
- the management node obtains a processing result of the to-be-processed data set according to a first intermediate result obtained by at least two computing nodes of the first type of computing nodes.
- the data processing method provided by the embodiment of the present invention performs a merge operation on the data block.
- the reduction operation it is not necessary to wait for all the merge operations to be completed before performing the reduction operation, and the merge operation and the reduction operation are alternately performed, thereby saving the memory space occupied by the calculation and reducing the calculation time.
- the data processing system further includes at least one second type of computing node
- the method 1000 further includes:
- the management node allocates a second processing task to the at least one computing node including the SC y in the second type of computing node according to the first intermediate result obtained by the at least two computing nodes of the first type of computing node, where SC y is the yth computing node of the at least one computing node, and y is a positive integer;
- the computing node SC y obtains a first intermediate result obtained by at least two computing nodes of the first type of computing node according to the second processing task, where the first intermediate result obtained by the SC y is based on the to-be-processed data set a first intermediate result obtained by the data block M 1x located in the same row and the data block M 2x located in the same row;
- the computing node SC y performs a reduce2 operation on the first intermediate result obtained by the SC y to obtain a second intermediate result M′′ y , wherein the second intermediate result M′′ y is a matrix including m rows and p columns of data;
- the management node obtains a processing result of the to-be-processed data set according to a second intermediate result obtained by at least one of the second type of calculation results.
- the data set further includes a data block M 3x , where the data block M 3x is a matrix including m rows and p columns of data, the method 1000 further includes:
- the management node allocates a third process to the at least one computing node including the SC y in the second type of computing node according to the second intermediate result obtained by the at least one computing node including the SC y in the second type of computing node task;
- the computing node SC y acquires the data block M 3x in the data set according to the third processing task
- n m
- the data block M 2x and the data block M 3x are the same data block.
- n p
- the data block M 1x and the data block M 3x are the same data block.
- At least two calculation sections are included in the second type of computing node. At the time of the point, at least two of the second type of computing nodes process the second processing task assigned by the management node in parallel.
- the management node, the first type of computing node, and the second type of computing node comprise a physical machine, a virtual machine, or a central processing unit CPU.
- the data processing method provided by the embodiment of the present invention does not need to wait for all the merge operations to complete after the merge operation and the reduction operation, but the merge operation and the reduction operation.
- the operations are alternated, which saves memory space occupied by calculations and reduces calculation time.
- the foregoing storage medium may include: a USB flash drive, a mobile hard disk, a magnetic disk, an optical disk, a random access memory (RAM), a solid state disk (SSD), or a non-volatile memory.
- a USB flash drive a mobile hard disk
- a magnetic disk a magnetic disk
- an optical disk a random access memory (RAM)
- a solid state disk SSD
- a variety of non-transitory machine readable media that can store program code. The above description is only a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
Description
Claims (30)
- 一种数据处理系统,其特征在于,所述数据处理系统包括管理节点和第一类计算节点,所述管理节点用于:向所述第一类计算节点中包括FCx在内的至少两个计算节点分配第一处理任务,其中,FCx为所述至少两个计算节点中的第x个计算节点,x为正整数;所述第一类计算节点中的至少两个计算节点并行处理所述管理节点分配的第一处理任务;所述计算节点FCx,用于根据所述管理节点分配的第一处理任务,获取待处理的数据集中的数据块Mx和数据块V1x,其中,所述数据块Mx为包含m行n列数据的矩阵,所述数据块V1x为包含n维数据的向量,m和n为正整数,n的值不小于2;对所述数据块Mx以及所述数据块V1x执行合并combine2操作和归约reduce2操作,以获得第一中间结果V′x,所述第一中间结果V′x为包括m维数据的向量,所述第一中间结果V′x中的元素为v′i,i为变量,i的取值分别从1到m,其中,v′i=v′i,n,v′i,n根据v′i,j=reduce2(v′i,j-1,combine2(mi,j,vj))获得,mi,j为所述数据块Mx中的元素,vj为所述数据块V1x中的元素,j为变量,j的取值分别从1到n;所述管理节点,还用于根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果获得所述待处理数据集的处理结果。
- 根据权利要求1所述的数据处理系统,其特征在于,所述数据处理系统中还包括第二类计算节点,所述管理节点具体用于:根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第二处理任务,其中,SCy为所述至少一个计算节点中的第y个计算节点,y为正整数;所述计算节点SCy用于:根据所述第二处理任务获取所述第一类计算节点中的至少两个计算节点获得的第一中间结果,其中,所述SCy获取的第一中间结果是根据所述待处理数据集中位于同一行的数据块获得的第一中间结果;将所述SCy获取的第一中间结果执行reduce2操作,以获得第二中间结 果V″y,其中,所述第二中间结果V″y为包含m维数据的向量;所述管理节点具体用于:根据所述第二类计算节点中的至少一个计算节点获得的第二中间结果获得所述待处理数据集的处理结果。
- 根据权利要求2所述的数据处理系统,其特征在于,所述数据集还包括数据块V2x,所述数据块V2x为包含m维数据的向量,所述管理节点还用于:根据所述第二类计算节点中包括SCy在内的至少一个计算节点获得的第二中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第三处理任务;所述计算节点SCy还用于:根据所述第三处理任务获取所述数据集中的数据块V2x;对所述SCy获得的第二中间结果V″y和所述数据块V2x执行赋值assign操作,以获得所述待处理数据集的处理结果。
- 根据权利要求3所述的数据处理系统,其特征在于:m=n,所述数据块V1x和所述数据块V2x为同一数据块。
- 根据权利要求2-4任意一项所述的数据处理系统,其特征在于,在所述第二类计算节点中包括至少两个计算节点时,所述第二类计算节点中的至少两个计算节点并行处理所述管理节点分配的第二处理任务。
- 根据权利要求2-5任意一项所述的数据处理系统,其特征在于:所述管理节点、所述第一类计算节点和所述第二类计算节点包括物理机、虚拟机或中央处理器CPU。
- 一种数据处理系统,其特征在于,所述数据处理系统包括管理节点和第一类计算节点,所述管理节点用于:向所述第一类计算节点中包括FCx在内的至少两个计算节点分配第一处理任务,其中,FCx为所述至少两个计算节点中的第x个计算节点,x为正整数;所述第一类计算节点中的至少两个计算节点并行处理所述管理节点分配的第一处理任务;所述计算节点FCx,用于根据所述管理节点分配的第一处理任务获取待 处理的数据集中的数据块M1x和数据块M2x,其中,所述数据块M1x为包含m行n列数据的矩阵,所述数据块M2x为包含n行p列数据的矩阵,m、n和P为正整数,n的值不小于2;对所述数据块M1x以及所述数据块M2x执行合并combine2操作和归约reduce2操作,以获得第一中间结果M′x,所述第一中间结果M′x为包括m行p列数据的矩阵,所述第一中间结果M′x中的元素为m′i,j,i和j为变量,i的取值分别从1到m,j的取值分别从1到p,其中,m′i,j=m′i,j,n,m′i,j,n根据m′i,j,k=reduce2(m′i,j,k-1,combine2(m1[i,k],m2[k,j]))获得,m1[i,k]为所述数据块M1x中第i行第k列的元素,m2[k,j]为所述数据块M2x中第k行第j列的元素,k为变量,k的取值分别从1到n;所述管理节点,还用于根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果获得所述待处理数据集的处理结果。
- 根据权利要求7所述的数据处理系统,其特征在于,所述数据处理系统中还包括第二类计算节点,所述管理节点具体用于:根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第二处理任务,其中,SCy为所述至少一个计算节点中的第y个计算节点,y为正整数;所述计算节点SCy用于:根据所述第二处理任务获取所述第一类计算节点中的至少两个计算节点获得的第一中间结果,其中,所述SCy获取的第一中间结果是根据所述待处理数据集中位于同一行的数据块M1x和位于同一列的数据块M2x获得的第一中间结果;将所述SCy获取的第一中间结果执行reduce2操作,以获得第二中间结果M″y,其中,所述第二中间结果M″y为包含m行p列数据的矩阵;所述管理节点具体用于:根据所述第二类计算结果中的至少一个计算节点获得的第二中间结果获得所述待处理数据集的处理结果。
- 根据权利要求8所述的数据处理系统,其特征在于,所述数据集还包括数据块M3x,所述数据块M3x为包含m行p列数据的矩阵,所述管理节点还用于:根据所述第二类计算节点中包括SCy在内的至少一个计算节点获得的第 二中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第三处理任务;所述计算节点SCy还用于:根据所述第三处理任务获取所述数据集中的数据块M3x;对所述SCy获得的第二中间结果M″y和所述数据块M3x执行赋值assign操作,以获得所述待处理数据集的处理结果。
- 根据权利要求9所述的数据处理系统,其特征在于:n=m,所述数据块M2x和所述数据块M3x为同一数据块。
- 根据权利要求9所述的数据处理系统,其特征在于:n=p,所述数据块M1x和所述数据块M3x为同一数据块。
- 根据权利要求8-11任意一项所述的数据处理系统,其特征在于:在所述第二类计算节点中包括至少两个计算节点时,所述第二类计算节点中的至少两个计算节点并行处理所述管理节点分配的第二处理任务。
- 根据权利要求7-12任意一项所述的数据处理系统,其特征在于:所述管理节点、所述第一类计算节点和所述第二类计算节点包括物理机、虚拟机或中央处理器CPU。
- 一种计算节点,其特征在于,包括:接收模块,用于接收数据处理系统中的管理节点分配的第一处理任务;获取模块,用于根据所述接收模块接收的所述管理节点分配的所述第一处理任务,获取待处理的数据集中的数据块Mx和数据块V1x,其中,所述数据块Mx为包含m行n列数据的矩阵,所述数据块V1x为包含n维数据的向量,m和n为正整数,n的值不小于2;处理模块,用于对所述数据块Mx以及所述数据块V1x执行合并combine2操作和归约reduce2操作,以获得第一中间结果V′x,所述第一中间结果V′x为包括m维数据的向量,所述第一中间结果V′x中的元素为v′i,i为变量,i的取值分别从1到m,其中,v′i=v′i,n,v′i,n根据v′i,j=reduce2(v′i,j-1,combine2(mi,j,vj))获得,mi,j为所述数据块Mx中的元素,vj为所述数据块V1x中的元素,j为变量,j的取值分别从1到n。
- 根据权利要求14所述的计算节点,其特征在于:所述计算节点包括物理机、虚拟机或中央处理器CPU。
- 一种计算节点,其特征在于,包括:接收模块,用于接收数据处理系统中的管理节点分配的第一处理任务,其中,所述数据处理系统包括所述计算节点和所述管理节点;获取模块,用于根据所述接收模块接收的所述管理节点分配的所述第一处理任务,获取待处理的数据集中的数据块M1x和数据块M2x,其中,所述数据块M1x为包含m行n列数据的矩阵,所述数据块M2x为包含n行p列数据的矩阵,m、n和P为正整数,n的值不小于2;处理模块,用于对所述数据块M1x以及所述数据块M2x执行合并combine2操作和归约reduce2操作,以获得第一中间结果M′x,所述第一中间结果M′x为包括m行p列数据的矩阵,所述第一中间结果M′x中的元素为m′ij,i和j为变量,i的取值分别从1到m,j的取值分别从1到p,其中,m′i,j=m′i,j,n,m′i,j,n根据m′i,j,k=reduce2(m′i,j,k-1,combine2(m1[i,k],m2[k,j]))获得,m1[i,k]为所述数据块M1x中第i行第k列的元素,m2[k,j]为所述数据块M2x中第k行第j列的元素,k为变量,k的取值分别从1到n。
- 根据权利要求14所述的计算节点,其特征在于:所述计算节点包括物理机、虚拟机或中央处理器CPU。
- 一种数据处理的方法,其特征在于,所述方法应用于数据处理系统中,所述数据处理系统包括管理节点和第一类计算节点,所述方法包括:所述管理节点向所述第一类计算节点中包括FCx在内的至少两个计算节点分配第一处理任务,其中,FCx为所述至少两个计算节点中的第x个计算节点,x为正整数,其中,所述第一类计算节点中的至少两个计算节点并行处理所述管理节点分配的第一处理任务;所述计算节点FCx根据所述管理节点分配的第一处理任务,获取待处理的数据集中的数据块Mx和数据块V1x,其中,所述数据块Mx为包含m行n列数据的矩阵,所述数据块V1x为包含n维数据的向量,m和n为正整数,n的值不小于2;所述计算节点FCx对所述数据块Mx以及所述数据块V1x执行合并combine2操作和归约reduce2操作,以获得第一中间结果V′x,所述第一中间结果V′x为包括m维数据的向量,所述第一中间结果V′x中的元素为v′i,i为变量,i的取值分别从1到m,其中,v′i=v′i,n,v′i,n根据v′i,j=reduce2(v′i,j-1,combine2(mi,j,vj))获得,mi,j为所述数据块Mx中的元素,vj为所述数据块V1x中的元素,j为变量,j的取值分别从1到n;所述管理节点根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果获得所述待处理数据集的处理结果。
- 根据权利要求18所述的方法,其特征在于,所述数据处理系统还包括至少一个第二类计算节点,所述方法还包括:所述管理节点根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第二处理任务,其中,SCy为所述至少一个计算节点中的第y个计算节点,y为正整数;所述计算节点SCy根据所述第二处理任务获取所述第一类计算节点中的至少两个计算节点获得的第一中间结果,其中,所述SCy获取的第一中间结果是根据所述待处理数据集中位于同一行的数据块获得的第一中间结果;所述计算节点SCy将所述SCy获取的第一中间结果执行reduce2操作,以获得第二中间结果V″y,其中,所述第二中间结果V″y为包含m维数据的向量;所述管理节点根据所述第二类计算结果中的至少一个计算节点获得的第二中间结果获得所述待处理数据集的处理结果。
- 根据权利要求19所述的方法,其特征在于,所述数据集还包括数据块V2x,所述数据块V2x为包含m维数据的向量,所述方法还包括:所述管理节点根据所述第二类计算节点中包括SCy在内的至少一个计算节点获得的第二中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第三处理任务;所述计算节点SCy根据所述第三处理任务获取所述数据集中的数据块V2x;所述计算节点SCy对所述SCy获得的第二中间结果V″y和所述数据块V2x执行赋值assign操作,以获得所述待处理数据集的处理结果。
- 根据权利要求20所述的方法,其特征在于:m=n,所述数据块V1x和所述数据块V2x为同一数据块。
- 根据权利要求19-21任意一项所述的方法,其特征在于:在所述第二类计算节点中包括至少两个计算节点时,所述第二类计算节点中的至少两个计算节点并行处理所述管理节点分配的第二处理任务。
- 根据权利要求18-22任意一项所述的方法,其特征在于:所述管理 节点、所述第一类计算节点和所述第二类计算节点包括物理机、虚拟机或中央处理器CPU。
- 一种数据处理的方法,其特征在于,所述方法应用于数据处理系统中,所述数据处理系统包括管理节点和第一类计算节点,所述方法包括:所述管理节点向所述第一类计算节点中包括FCx在内的至少两个计算节点分配第一处理任务,其中,FCx为所述至少两个计算节点中的第x个计算节点,x为正整数,其中,所述第一类计算节点中的至少两个计算节点并行处理所述管理节点分配的第一处理任务;所述计算节点FCx根据所述管理节点分配的第一处理任务获取待处理的数据集中的数据块M1x和数据块M2x,其中,所述数据块M1x为包含m行n列数据的矩阵,所述数据块M2x为包含n行p列数据的矩阵,m、n和P为正整数,n的值不小于2;所述计算节点FCx对所述数据块M1x以及所述数据块M2x执行合并combine2操作和归约reduce2操作,以获得第一中间结果M′x,所述第一中间结果M′x为包括m行p列数据的矩阵,所述第一中间结果M′x中的元素为m′ij,i和j为变量,i的取值分别从1到m,j的取值分别从1到p,其中,m′i,j=m′i,j,n,m′i,j,n根据m′i,j,k=reduce2(m′i,j,k-1,combine2(m1[i,k],m2[k,j]))获得,m1[i,k]为所述数据块M1x中第i行第k列的元素,m2[k,j]为所述数据块M2x中第k行第j列的元素,k为变量,k的取值分别从1到n;所述管理节点根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果获得所述待处理数据集的处理结果。
- 根据权利要求24所述的方法,其特征在于,所述数据处理系统中还包括第二类计算节点,所述方法还包括:所述管理节点根据所述第一类计算节点中的至少两个计算节点获得的第一中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第二处理任务,其中,SCy为所述至少一个计算节点中的第y个计算节点,y为正整数;所述计算节点SCy根据所述第二处理任务获取所述第一类计算节点中的至少两个计算节点获得的第一中间结果,其中,所述SCy获取的第一中间结果是根据所述待处理数据集中位于同一行的数据块M1x和位于同一列的数据块M2x获得的第一中间结果;所述计算节点SCy将所述SCy获取的第一中间结果执行reduce2操作,以获得第二中间结果M″y,其中,所述第二中间结果M″y为包含m行p列数据的矩阵;所述管理节点根据所述第二类计算结果中的至少一个计算节点获得的第二中间结果获得所述待处理数据集的处理结果。
- 根据权利要求25所述的方法,其特征在于,所述数据集还包括数据块M3x,所述数据块M3x为包含m行p列数据的矩阵,所述方法还包括:所述管理节点根据所述第二类计算节点中包括SCy在内的至少一个计算节点获得的第二中间结果,向所述第二类计算节点中包括SCy在内的至少一个计算节点分配第三处理任务;所述计算节点SCy根据所述第三处理任务获取所述数据集中的数据块M3x;所述计算节点SCy对所述SCy获得的第二中间结果M″y和所述数据块M3x执行赋值assign操作,以获得所述待处理数据集的处理结果。
- 根据权利要求26所述的方法,其特征在于:n=m,所述数据块M2x和所述数据块M3x为同一数据块。
- 根据权利要求26所述的方法,其特征在于:n=p,所述数据块M1x和所述数据块M3x为同一数据块。
- 根据权利要求25-28任意一项所述的方法,其特征在于:在所述第二类计算节点中包括至少两个计算节点时,所述第二类计算节点中的至少两个计算节点并行处理所述管理节点分配的第二处理任务。
- 根据权利要求24-29任意一项所述的方法,其特征在于:所述管理节点、所述第一类计算节点和所述第二类计算节点包括物理机、虚拟机或中央处理器CPU。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020177022612A KR101999639B1 (ko) | 2015-02-06 | 2015-02-06 | 데이터 처리 시스템, 계산 노드 및 데이터 처리 방법 |
PCT/CN2015/072451 WO2016123808A1 (zh) | 2015-02-06 | 2015-02-06 | 数据处理系统、计算节点和数据处理的方法 |
EP15880764.4A EP3239853A4 (en) | 2015-02-06 | 2015-02-06 | Data processing system, calculation node and data processing method |
CN201580001137.1A CN106062732B (zh) | 2015-02-06 | 2015-02-06 | 数据处理系统、计算节点和数据处理的方法 |
JP2017541356A JP6508661B2 (ja) | 2015-02-06 | 2015-02-06 | データ処理システム、計算ノードおよびデータ処理方法 |
US15/667,634 US10567494B2 (en) | 2015-02-06 | 2017-08-03 | Data processing system, computing node, and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/072451 WO2016123808A1 (zh) | 2015-02-06 | 2015-02-06 | 数据处理系统、计算节点和数据处理的方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/667,634 Continuation US10567494B2 (en) | 2015-02-06 | 2017-08-03 | Data processing system, computing node, and data processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016123808A1 true WO2016123808A1 (zh) | 2016-08-11 |
Family
ID=56563349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2015/072451 WO2016123808A1 (zh) | 2015-02-06 | 2015-02-06 | 数据处理系统、计算节点和数据处理的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10567494B2 (zh) |
EP (1) | EP3239853A4 (zh) |
JP (1) | JP6508661B2 (zh) |
KR (1) | KR101999639B1 (zh) |
CN (1) | CN106062732B (zh) |
WO (1) | WO2016123808A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108764490A (zh) * | 2018-08-28 | 2018-11-06 | 合肥本源量子计算科技有限责任公司 | 一种量子虚拟机 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11748625B2 (en) | 2016-12-30 | 2023-09-05 | Intel Corporation | Distributed convolution for neural networks |
US10169296B2 (en) * | 2016-12-30 | 2019-01-01 | Intel Corporation | Distributed matrix multiplication for neural networks |
US10540398B2 (en) * | 2017-04-24 | 2020-01-21 | Oracle International Corporation | Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it |
CN107273339A (zh) * | 2017-06-21 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种任务处理方法及装置 |
CN107590254B (zh) * | 2017-09-19 | 2020-03-17 | 华南理工大学 | 具有合并处理方法的大数据支撑平台 |
US11636327B2 (en) * | 2017-12-29 | 2023-04-25 | Intel Corporation | Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism |
CN113678124A (zh) * | 2019-02-01 | 2021-11-19 | 光子智能股份有限公司 | 处理速率受限系统的矩阵操作 |
CN110489448A (zh) * | 2019-07-24 | 2019-11-22 | 西安理工大学 | 基于Hadoop的大数据关联规则的挖掘方法 |
CN110727836B (zh) * | 2019-12-17 | 2020-04-07 | 南京华飞数据技术有限公司 | 基于Spark GraphX的社交网络分析系统及其实现方法 |
CN112667679B (zh) * | 2020-12-17 | 2024-02-13 | 中国工商银行股份有限公司 | 数据关系的确定方法、装置和服务器 |
CN113872752B (zh) * | 2021-09-07 | 2023-10-13 | 哲库科技(北京)有限公司 | 安全引擎模组、安全引擎装置和通信设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120078991A1 (en) * | 2010-09-27 | 2012-03-29 | Fujitsu Limited | Ordering generating method and storage medium, and shared memory scalar parallel computer |
CN102831102A (zh) * | 2012-07-30 | 2012-12-19 | 北京亿赞普网络技术有限公司 | 一种在计算机集群上进行矩阵乘积运算的方法和系统 |
CN103136244A (zh) * | 2011-11-29 | 2013-06-05 | 中国电信股份有限公司 | 基于云计算平台的并行数据挖掘方法及系统 |
CN103345514A (zh) * | 2013-07-09 | 2013-10-09 | 焦点科技股份有限公司 | 大数据环境下的流式数据处理方法 |
CN103544328A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的并行k均值聚类方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282583B1 (en) * | 1991-06-04 | 2001-08-28 | Silicon Graphics, Inc. | Method and apparatus for memory access in a matrix processor computer |
JPH05181895A (ja) * | 1991-12-27 | 1993-07-23 | Hitachi Ltd | 並列計算行列解法 |
JPH05324700A (ja) * | 1992-05-19 | 1993-12-07 | N T T Data Tsushin Kk | 行列乗算装置 |
JPH06175986A (ja) * | 1992-12-10 | 1994-06-24 | Nippon Telegr & Teleph Corp <Ntt> | 行列演算の並列処理方法 |
US7072960B2 (en) * | 2002-06-10 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Generating automated mappings of service demands to server capacities in a distributed computer system |
US20080147821A1 (en) * | 2006-12-19 | 2008-06-19 | Dietrich Bradley W | Managed peer-to-peer content backup service system and method using dynamic content dispersal to plural storage nodes |
JP2009087282A (ja) * | 2007-10-03 | 2009-04-23 | Fuji Xerox Co Ltd | 並列計算システムおよび並列計算方法 |
US7925842B2 (en) * | 2007-12-18 | 2011-04-12 | International Business Machines Corporation | Allocating a global shared memory |
US7921261B2 (en) * | 2007-12-18 | 2011-04-05 | International Business Machines Corporation | Reserving a global address space |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US9489176B2 (en) * | 2011-09-15 | 2016-11-08 | Exxonmobil Upstream Research Company | Optimized matrix and vector operations in instruction limited algorithms that perform EOS calculations |
GB2500444B (en) * | 2012-03-21 | 2015-09-16 | Broadcom Corp | Data processing |
US20140331014A1 (en) * | 2013-05-01 | 2014-11-06 | Silicon Graphics International Corp. | Scalable Matrix Multiplication in a Shared Memory System |
US20150095747A1 (en) * | 2013-09-30 | 2015-04-02 | Itzhak Tamo | Method for data recovery |
US9916188B2 (en) * | 2014-03-14 | 2018-03-13 | Cask Data, Inc. | Provisioner for cluster management system |
WO2016037351A1 (en) * | 2014-09-12 | 2016-03-17 | Microsoft Corporation | Computing system for training neural networks |
-
2015
- 2015-02-06 KR KR1020177022612A patent/KR101999639B1/ko active IP Right Grant
- 2015-02-06 CN CN201580001137.1A patent/CN106062732B/zh active Active
- 2015-02-06 WO PCT/CN2015/072451 patent/WO2016123808A1/zh active Application Filing
- 2015-02-06 EP EP15880764.4A patent/EP3239853A4/en not_active Withdrawn
- 2015-02-06 JP JP2017541356A patent/JP6508661B2/ja active Active
-
2017
- 2017-08-03 US US15/667,634 patent/US10567494B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120078991A1 (en) * | 2010-09-27 | 2012-03-29 | Fujitsu Limited | Ordering generating method and storage medium, and shared memory scalar parallel computer |
CN103136244A (zh) * | 2011-11-29 | 2013-06-05 | 中国电信股份有限公司 | 基于云计算平台的并行数据挖掘方法及系统 |
CN102831102A (zh) * | 2012-07-30 | 2012-12-19 | 北京亿赞普网络技术有限公司 | 一种在计算机集群上进行矩阵乘积运算的方法和系统 |
CN103345514A (zh) * | 2013-07-09 | 2013-10-09 | 焦点科技股份有限公司 | 大数据环境下的流式数据处理方法 |
CN103544328A (zh) * | 2013-11-15 | 2014-01-29 | 南京大学 | 一种基于Hadoop的并行k均值聚类方法 |
Non-Patent Citations (2)
Title |
---|
KANG, U. ET AL.: "PEGAUS: Mining Peta-scale Graphs", KNOWLEDGE AND INFORMATION SYSTEMS, vol. 27, no. 2, 31 May 2009 (2009-05-31), pages 305, XP008185792 * |
See also references of EP3239853A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108764490A (zh) * | 2018-08-28 | 2018-11-06 | 合肥本源量子计算科技有限责任公司 | 一种量子虚拟机 |
Also Published As
Publication number | Publication date |
---|---|
CN106062732B (zh) | 2019-03-01 |
EP3239853A4 (en) | 2018-05-02 |
EP3239853A1 (en) | 2017-11-01 |
JP6508661B2 (ja) | 2019-05-08 |
CN106062732A (zh) | 2016-10-26 |
US20170331886A1 (en) | 2017-11-16 |
KR20170103949A (ko) | 2017-09-13 |
JP2018508887A (ja) | 2018-03-29 |
KR101999639B1 (ko) | 2019-07-12 |
US10567494B2 (en) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016123808A1 (zh) | 数据处理系统、计算节点和数据处理的方法 | |
CN111684473B (zh) | 提高神经网络阵列的性能 | |
US10445638B1 (en) | Restructuring a multi-dimensional array | |
US11361483B2 (en) | Graph partitioning for massive scale graphs | |
US20230351186A1 (en) | Processing for multiple input data sets | |
Peng et al. | Parallel and distributed sparse optimization | |
US10936765B2 (en) | Graph centrality calculation method and apparatus, and storage medium | |
US11775430B1 (en) | Memory access for multiple circuit components | |
US9996391B2 (en) | Parallel computer system, method of controlling parallel computer system, and recording medium | |
Arnaiz-González et al. | MR-DIS: democratic instance selection for big data by MapReduce | |
WO2023087914A1 (zh) | 推荐内容的选择方法、装置、设备、存储介质及程序产品 | |
JP2023541350A (ja) | 表畳み込みおよびアクセラレーション | |
Kumar | Aggregation based on graph matching and inexact coarse grid solve for algebraic two grid | |
CN109710403B (zh) | 应用进程映射方法、电子装置及计算机可读存储介质 | |
CN108140022A (zh) | 数据查询方法和数据库系统 | |
Le Borne et al. | Domain decomposition methods in scattered data interpolation with conditionally positive definite radial basis functions | |
DeFord et al. | Empirical analysis of space-filling curves for scientific computing applications | |
Ibeid et al. | A performance model for the communication in fast multipole methods on high-performance computing platforms | |
US9600446B2 (en) | Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof | |
CN110210691B (zh) | 资源推荐方法、装置、存储介质及设备 | |
AU2019200112A1 (en) | Reciprocal distribution calculating method and reciprocal distribution calculating system for cost accounting | |
CN111712811A (zh) | Hd地图的可扩展图形slam | |
US20240080255A1 (en) | Network traffic control using estimated maximum gap | |
Wlodarczyk et al. | Differential evolution for task allocation in mesh networks: Experimentation system and comparison of mutation schemes |
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: 15880764 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2015880764 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2017541356 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20177022612 Country of ref document: KR Kind code of ref document: A |