IP Library Granted Patent US 11,625,393
Granted Patent B2
US 11,625,393 · App. 16/782,118 · Granted Apr 11, 2023

High performance computing system

Inventors: Richard Graham (Knoxville, TN); Lion Levi (Yavne, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F16/244G06F16/214G06F16/2237G06F16/2246
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,625,393
App. No.
16/782,118
Granted
Apr 11, 2023
Kind
B2
Abstract

A method including providing a SHARP tree including a plurality of data receiving processes and at least one aggregation node, designating a data movement command, providing a plurality of data input vectors to each of the plurality of data receiving processes, respectively, the plurality of data receiving processes each passing on the respective received data input vector to the at least one aggregation node, and the at least one aggregation node carrying out the data movement command on the received plurality of data input vectors. Related apparatus and methods are also provided.

Claims (20)

1. A method for computation, comprising:

in a high-performance computing system that runs an application in which multiple processes perform portions of work of the application, defining a network comprising the multiple processes and at least one aggregation node;

in response to a data movement command, passing respective vectors of data having different, respective data sizes from the multiple processes over the network to the at least one aggregation node;

at the at least one aggregation node, in response to the data movement command, receiving and concatenating the respective vectors to generate a result vector having a result vector size equal to a sum of the respective data sizes of the received vectors; and

outputting the result vector from the at least one aggregation node to the network,

wherein defining the network comprises providing multiple aggregation nodes, comprising a root node, which outputs the result vector, and at least two intermediate aggregation nodes, each of which receives and concatenates the respective vectors from respective ones of the processes.

2. The method according to claim 1 , wherein the data movement command comprises a gather command.

3. The method according to claim 1 , wherein outputting the result vector comprises sending the result vector to the multiple processes.

4. The method according to claim 1 , wherein defining the network comprises providing a hierarchical tree having nodes corresponding to the multiple processes.

5. The method according to claim 1 , wherein passing the respective vectors comprises sending the data from the multiple processes with respective indexes, and wherein concatenating the respective vectors comprises adding the data to the result vector according to the respective indexes.

6. The method according to claim 5 , wherein sending the data comprises providing indications from the multiple processes to the at least one aggregation node of the respective data sizes of the respective vectors.

7. A high-performance computing system comprising multiple nodes, which are configured to run an application in which multiple processes perform portions of work of the application,

wherein a network comprising the multiple processes and at least one aggregation node is defined in the system, such that in response to a data movement command, the multiple processes pass respective vectors of data having different, respective data sizes over the network to the at least one aggregation node, and

wherein at the at least one aggregation node, in response to the data movement command, receives and concatenates the respective vectors to generate and outputs a result vector to the network having a result vector size equal to a sum of the respective data sizes of the received vectors,

wherein the network comprises multiple aggregation nodes, including a root node, which outputs the result vector, and at least two intermediate aggregation nodes, each of which receives and concatenates the respective vectors from respective ones of the processes.

8. The system according to claim 7 , wherein the data movement command comprises a gather command.

9. The system according to claim 7 , wherein the at least one aggregation node is configured to send the result vector to the multiple processes.

10. The system according to claim 7 , wherein the network comprises is defined as a hierarchical tree in which the nodes correspond to the multiple processes.

11. The system according to claim 7 , wherein the multiple processes pass the respective vectors to the at least one aggregation node together with respective indexes, and wherein the at least one aggregation node concatenates the respective vectors according to the respective indexes.

12. The system according to claim 11 , wherein the multiple processes provide indications to the at least one aggregation node of the respective data sizes of the respective vectors.

Assignments (2)
MERGER Recorded Dec 15, 2021
From: MELLANOX TECHNOLOGIES TLV LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 058517/0564 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2020
From: LEVI, LION; GRAHAM, RICHARD
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 051720/0892 →
Continuity (2)
Provisional Application 62807266 · Feb 19, 2019
Related Publication 20200265043A1 · Aug 20, 2020