Erasure coding and group computations using rooted binary and ternary trees
First Claim
1. A method of generating a tree structure comprising processing nodes for data processing, wherein each of the processing nodes of the tree structure represents a processor unit in a processor network, the method comprising:
- providing a first pair of trees including an even tree A0 employed to perform even-numbered computation steps in a sequence of steps and an odd tree A1 employed to perform odd-numbered computation steps in the sequence of steps, each tree of the first pair having the same leaf node a and no parent node;
providing a second pair of trees wherein each of the trees in the second pair of trees is different than each of the trees in the first pair of trees, the second pair of trees including an even tree B0 employed to perform even-numbered computation steps in the sequence of steps and an odd tree B1 employed to perform odd-numbered computation steps in the sequence of steps, each tree of the second pair having the same leaf node b and no parent node; and
creating the tree structure comprising the processing nodes for improved concurrent processing of the sequence of steps by re-ordering the processing nodes in the first and second pairs of trees as follows;
generating a first node x for use as a parent node in the tree structure;
creating a first binary tree X0 by combining the even tree A0 of the first pair of trees and the odd tree B1 of the second pair of trees and incorporating the first node x as a parent node of the first binary tree X0; and
creating a second binary tree X1 by combining the odd tree A1 of the first pair of trees and the even tree B0 of the second pair of trees and elevating the leaf node b of the second pair of trees to become a parent node of the second binary tree X1.
3 Assignments
0 Petitions
Accused Products
Abstract
High throughput in data computations and processing is maintained while minimizing latency. A binary tree architecture is provided in which two trees are used simultaneously, and initiation of the trees is staggered to allow for optimal use of bandwidth. These techniques are desirable for erasure codes and other computations where the addition operator is commutative. Additionally, a ternary tree architecture may be used, in which three trees co-exist on the same set of nodes to maintain high throughput while further improving latency.
34 Citations
11 Claims
-
1. A method of generating a tree structure comprising processing nodes for data processing, wherein each of the processing nodes of the tree structure represents a processor unit in a processor network, the method comprising:
-
providing a first pair of trees including an even tree A0 employed to perform even-numbered computation steps in a sequence of steps and an odd tree A1 employed to perform odd-numbered computation steps in the sequence of steps, each tree of the first pair having the same leaf node a and no parent node; providing a second pair of trees wherein each of the trees in the second pair of trees is different than each of the trees in the first pair of trees, the second pair of trees including an even tree B0 employed to perform even-numbered computation steps in the sequence of steps and an odd tree B1 employed to perform odd-numbered computation steps in the sequence of steps, each tree of the second pair having the same leaf node b and no parent node; and creating the tree structure comprising the processing nodes for improved concurrent processing of the sequence of steps by re-ordering the processing nodes in the first and second pairs of trees as follows; generating a first node x for use as a parent node in the tree structure; creating a first binary tree X0 by combining the even tree A0 of the first pair of trees and the odd tree B1 of the second pair of trees and incorporating the first node x as a parent node of the first binary tree X0; and creating a second binary tree X1 by combining the odd tree A1 of the first pair of trees and the even tree B0 of the second pair of trees and elevating the leaf node b of the second pair of trees to become a parent node of the second binary tree X1. - View Dependent Claims (2, 3, 4)
-
-
5. A method of performing computations in a network computing environment comprising a plurality of processing nodes in a tree structure, wherein each processing node represents a processor unit in the network, the method comprising:
-
providing a first pair of processing nodes including an even processing node employed to perform even-numbered computation steps in a sequence of steps and an odd processing node employed to perform odd-numbered computation steps in the sequence of steps; providing a second pair of processing nodes wherein each of the processing nodes in the second pair of processing nodes is different than the first pair of processing nodes and including an even processing node employed to perform even-numbered computation steps in the sequence of steps and an odd processing node employed to perform odd-numbered computation steps in the sequence of steps; creating a tree structure for improved concurrent processing of the sequence of steps by re-ordering the processing nodes in the first and second pairs of processing nodes as follows; combining the even one of the first pair of processing nodes and the odd one of the second pair of processing nodes into a first binary tree, and combining the odd one of the first pair of processing nodes and the even one of the second pair of processing nodes into a second binary tree, the first and second binary trees each having a parent node, wherein the first and second binary trees are linked together by at least one common processing node to improve concurrent processing of the sequence of steps by the first and second pairs of processing nodes; generating a first computation result at the parent node of the first binary tree; generating a second computation result at the parent node of the second binary tree; and generating a third computation result by performing an operation on the first and second computation results. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A method of generating a tree structure comprising processing nodes for data processing, wherein each of the processing nodes of the tree structure represents a processor unit in a processor network, the method comprising:
-
providing first, second, and third trios of trees, each trio including a first tree employed to perform first out of three computation steps in a sequence of steps, a second tree employed to perform second out of three computation steps in the sequence of steps, and a third tree employed to perform third out of three computation steps in the sequence of steps, each tree of the first trio having the same first leaf node and no parent node, each tree of the second trio having the same second leaf node and no parent node, and each tree of the third trio having the same third leaf node and no parent node; and creating the tree structure comprising the processing nodes for improved concurrent processing of the sequence of steps by re-ordering the processing nodes in the first, second and third trios of trees as follows; combining the first tree of the first trio of trees, the second tree of the second trio of trees, and the third tree of the third trio of trees into a first ternary tree X0, combining the second tree of the first trio of trees, the third tree of the second trio of trees, and the first tree of the third trio of trees into a second ternary tree X2, and combining the third tree of the first trio of trees, the first tree of the second trio of trees, and the second tree of the third trio of trees into a third ternary tree X1; elevating a leaf node to a parent node in one of the first or second ternary trees X0 or X2, and providing the generated parent node as a leaf node to the other of the first or second ternary trees; and elevating a leaf node to a parent node in one of the second or third ternary trees X2 or X1, and providing the generated parent node as a leaf node to the other of the second or third ternary trees.
-
Specification