Patent ID: 8671134
Filing Date: 2014-03-11
Classification: G06F

Abstract:
1. A method for distributing multiple identical copies of a specified data record in a High-Performance Computing cluster, the High-Performance Computing cluster comprising a management node and M computation nodes where M is an integer greater than or equal to 2, the management node distributing the specified data record to the M computation nodes, the method comprising: (a) dividing the M computation nodes into m layers where m is an integer greater than or equal to 2; (b) dividing the specified data record into k shares where k is an integer greater than or equal to 2, the specified data record and each of the k shares thereof having a respective predetermined size; (c) distributing, by the management node, the k shares of the specified data record to a first layer of computation nodes as sub-nodes thereof, each computation node of the first layer of computation nodes obtaining at least one respective share of the k shares of the specified data record therein from the management node, each computation node of the first layer of computation nodes being a root node of a respective branch of said M computation nodes; (d) distributing, by at least one respective computation node within each said branch of the M computation nodes, the at least one respective share of the k shares of the specified data record distributed by the management node to the root node of the respective branch and received by the respective computation node from a parent node thereof, to each sub-node of the respective computation node; (e) determining, by each of the M computation nodes, the respective remaining shares of the k shares of the specified data record not received by the respective computation node from said (c) and said (d), and for each respective remaining share, determining at least one respective source computation node having a copy of the respective remaining share, each source computation node being located within a respective branch of said M computation nodes other than the branch of said M computation nodes containing the respective computation node; and (f) responsive to (e), requesting, by each of the M computation nodes, each of the respective remaining shares of the k shares of the specified data record not received by the respective computation node from said (c) and said (d) in a respective plurality of requests issued by the requesting computation node, each request of each respective plurality of requests issued by the requesting computation node being made to a respective source computation node of said M computation nodes as determined by said (e), and responsive thereto, receiving in each of the requesting computation nodes the respective remaining shares of the k shares of the specified data record requested by the respective requesting computation node, to thereby obtain in each computation node a complete copy of all the specified data record.