IP Library Granted Patent US 8,782,164
Granted Patent B2
US 8,782,164 · App. 12/697,043 · Granted Jul 15, 2014

Implementing asyncronous collective operations in a multi-node processing system

Inventors: Dong Chen (Yorktown Heights, NY); Noel A. Eisley (Yorktown Heights, NY); Philp Heidelberger (Yorktown Heights, NY); Sameer Kumar (Yorktown Heights, NY); Valentina Salapura (Yorktown Heights, NY); Burkhard Steinmacher-Burow (Boeblingen, DE)
Assignee: International Business Machines Corporation
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 8,782,164
App. No.
12/697,043
Granted
Jul 15, 2014
Kind
B2
Abstract

A method, system, and computer program product are disclosed for implementing an asynchronous collective operation in a multi-node data processing system. In one embodiment, the method comprises sending data to a plurality of nodes in the data processing system, broadcasting a remote get to the plurality of nodes, and using this remote get to implement asynchronous collective operations on the data by the plurality of nodes. In one embodiment, each of the nodes performs only one task in the asynchronous operations, and each nodes sets up a base address table with an entry for a base address of a memory buffer associated with said each node. In another embodiment, each of the nodes performs a plurality of tasks in said collective operations, and each task of each node sets up a base address table with an entry for a base address of a memory buffer associated with the task.

Claims (38)

1. A method of implementing an asynchronous collective operation in a multi-node data processing system, wherein each of the nodes includes a plurality of processing units and a messaging unit to implement direct memory access to the processing units of others of the nodes, the method comprising:

using the messaging unit of one of the nodes to initiate a one sided global collective operation by injecting a remote get descriptor and broadcasting the remote get descriptor from said one of the nodes to a plurality of others of the nodes; and

said remote get descriptor initiating said global collective operation back to a specified one of the nodes wherein data are sent in an asynchronous manner in the data processing system from each of the plurality of nodes to said specified one of the nodes.

2. The method according to claim 1 , wherein each of said plurality of nodes sets up a base address table with an entry for the source memory buffer associated with said each node's contribution to the global sum.

3. The method according to claim 1 , wherein each of said plurality of nodes sets up a base address table with an entry for the address to the destination memory buffer on the target where the summed output is copied to.

4. The method according to claim 1 where all the plurality of nodes have the same physical address for a source buffer for use in said one of the collective operations, and this address is placed once in a payload of the remote get descriptor.

5. The method according to claim 1 , where each compute node has N processes and the root node initiates N remote get operations, one for each process, to complete the one-sided reduce operation and then does a local sum to complete the one-sided reduce.

6. The method according to claim 1 , wherein said broadcasting includes sending a defined communication to said plurality of destination nodes, and injecting a remote get descriptor into said defined communication, and wherein said remote get descriptor includes a put that reduces data back to a root node during said asynchronous collective operations.

7. The method according to claim 1 , wherein each of said plurality of nodes performs only one task in said asynchronous collective operations.

8. The method according to claim 7 , wherein said broadcasting includes sending a put to each of the tasks of each of the nodes to reduce data from said each task to a root node.

9. The method according to claim 1 , wherein each of the plurality of destination nodes performs a plurality of tasks in said collective operations, and wherein each of the tasks of each of said plurality of nodes sets up a base address table with an entry for a base address of a memory buffer associated with said each task.

10. The method according to claim 9 , wherein

said broadcasting includes sending a communication to said plurality of destination nodes, and injecting a remote get descriptor into said communication;

said descriptor includes a put that reduces data back to a root node;

said put reduces data back to the root node form a first of the tasks performed by each of the nodes during said collective operations.

11. A system for implementing an asynchronous collective operation in a multi-node data processing system, wherein each of the nodes includes a plurality of processing units and a messaging unit to implement direct memory access to the processing units of others of the nodes, the system comprising one or more processing nodes of the data processing system configured for:

using the messaging unit of one of the nodes to initiate a one sided global collective operation by injecting a remote get descriptor and broadcasting the remote get descriptor from said one of the nodes to a plurality of others of the nodes; and

said remote get descriptor initiating said global collective operation back to a specified one of the nodes wherein data are sent in an asynchronous manner in the data processing system from each of the plurality of nodes to said specified one of the nodes.

12. The system according to claim 11 , wherein the broadcasting includes using a mechanism for said Messaging Unit to initiate a one-sided allreduce operation by injecting a remote get descriptor that is broadcast to all the compute nodes and initiates a global-sum operation back to the initiating node or an arbitrary target node.

13. The system according to claim 11 , wherein each of said plurality of nodes sets up a base address table with an entry for a base address of a memory buffer associated with said each node.

14. The system according to claim 11 , wherein each of the plurality of destination nodes performs a plurality of tasks in said collective operations, and wherein each of the tasks of each of said plurality of nodes sets up a base address table with an entry for a base address of a memory buffer associated with said each task.

15. The system according to claim 11 , wherein said broadcasting includes sending a put to each of the tasks of each of the nodes to reduce data from said each task to a root node.

16. An article of manufacture comprising:

at least one tangible computer readable device having computer readable program code logic tangibility embodied therein to execute machine instructions in one or more processing units for implementing an asynchronous collective operation in a multi-node data processing system, wherein each of the nodes includes a plurality of processing units and a messaging unit to implement direct memory access to the processing units of others of the nodes, the program code logic, when executing in said one or more processing units, performing the following:

using the messaging unit of one of the nodes to initiate a one sided global collective operation by injecting a remote get descriptor and broadcasting the remote get descriptor from said one of the nodes to a plurality of others of the nodes; and

said remote get descriptor initiating said global collective operation back to a specified one of the nodes wherein data are sent in an asynchronous manner in the data processing system from each of the plurality of nodes to said specified one of the nodes.

17. The article of manufacture according to claim 16 , wherein each of said plurality of nodes sets up a base address table with an entry for a base address of a memory buffer associated with said each node.

18. The article of manufacture according to claim 17 , wherein each of said plurality of nodes performs only one task in said asynchronous collective operations.

19. The article of manufacture according to claim 17 , wherein each of the plurality of destination nodes performs a plurality of tasks in said collective operations, and wherein each of the tasks of each of said plurality of nodes sets up a base address table with an entry for a base address of a memory buffer associated with said each task.

20. The article of manufacture according to claim 19 , wherein said broadcasting includes sending a put to each of the tasks of each of the nodes to reduce data from said each task to a root node.

21. A method of implementing an asynchronous collective operation in a multi-node data processing system, wherein each of the nodes includes a plurality of processing units and a messaging unit to implement direct memory access to the processing units of others of the nodes, the method comprising:

using the messaging unit of one of the nodes to initiate a one sided global collective operation by injecting generating a remote get descriptor and broadcasting the remote get descriptor from said one of the nodes to a plurality of others of the nodes; and

said remote get descriptor initiating said global collective operation back to a specified one of the nodes wherein data are sent in an asynchronous manner in the data processing system from each of the plurality of nodes to said specified one of the nodes; and wherein

said broadcasting includes sending a defined communication to said plurality of destination nodes, and injecting the remote get descriptor into said defined communication, said remote get descriptor including a put that reduces data back to said specified one of the nodes during said asynchronous collective operation.

22. The method according to claim 21 , wherein each of said plurality of nodes performs only one task in said asynchronous collective operations, and each of said plurality of nodes sets up a base address table with an entry for a base address of a memory buffer associated with said each node.

23. The method according to claim 21 , wherein each of the plurality of destination nodes performs a plurality of tasks in said collective operations, and wherein each of the tasks of each of said plurality of nodes sets up a base address table with an entry for a base address of a memory buffer associated with aid each task.

24. The method according to claim 23 , wherein said broadcasting includes sending a put to each of the tasks of each of the nodes to reduce data from said each task to the root node.

25. The method according to claim 21 , wherein said broadcasting includes said root node injecting said remote get descriptor into said defined communication.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE RE-RECORD PREVIOUSLY RECORDED ASSIGNMENT TO INCLUDE MISSING INVENTOR SIGNATURE PAGE FOR BURKHARD STEINMACHER-BUROW PREVIOUSLY RECORDED ON REEL 024267 FRAME 0242. ASSIGNOR(S) HEREBY CONFIRMS THE RE-RECORD ASSIGNMENT TO INCLUDE MISSING INVENTOR SIGNATURE PAGE FOR BURKHARD STEINMACHER-BUROW. Recorded Jun 9, 2014
From: CHEN, DONG; EISLEY, NOEL A.; HEIDELBERGER, PHILIP; KUMAR, SAMEER; SALAPURA, VALENTINA; STEINMACHER-BUROW, BURKHARD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033105/0946 →
CONFIRMATORY LICENSE Recorded Aug 13, 2010
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 024832/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2010
From: CHEN, DONG; EISLEY, NOEL A.; HEIDELBERGER, PHILIP; KUMAR, SAMEER; SALAPURA, VALENTINA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024267/0242 →
Continuity (4)
Provisional Application 61261269 · Nov 13, 2009
Provisional Application 61293611 · Jan 8, 2010
Provisional Application 61295669 · Jan 15, 2010
Related Publication 20110191437A1 · Aug 4, 2011