IP Library Granted Patent US 8,490,112
Granted Patent B2
US 8,490,112 · App. 12/959,539 · Granted Jul 16, 2013

Data communications for a collective operation in a parallel active messaging interface of a parallel computer

Inventor: Daniel A. Faraj (Rochester, MN)
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,490,112
App. No.
12/959,539
Granted
Jul 16, 2013
Kind
B2
Abstract

Algorithm selection for data communications in a parallel active messaging interface (‘PAMI’) of a parallel computer, the PAMI composed of data communications endpoints, each endpoint including specifications of a client, a context, and a task, endpoints coupled for data communications through the PAMI, including associating in the PAMI data communications algorithms and bit masks; receiving in an origin endpoint of the PAMI a collective instruction, the instruction specifying transmission of a data communications message from the origin endpoint to a target endpoint; constructing a bit mask for the received collective instruction; selecting, from among the associated algorithms and bit masks, a data communications algorithm in dependence upon the constructed bit mask; and executing the collective instruction, transmitting, according to the selected data communications algorithm from the origin endpoint to the target endpoint, the data communications message.

Claims (41)

1. A parallel computer that selects an algorithm for data communications for a collective operation in a parallel active messaging interface (‘PAMI’) of the parallel computer, the parallel computer comprising a plurality of compute nodes that execute a parallel application, the PAMI comprising data communications endpoints, each endpoint comprising a specification of data communications parameters for a thread of execution on a compute node, including specifications of a client, a context, and a task, the compute nodes and the endpoints coupled for data communications through the PAMI and through data communications resources, the compute nodes comprising computer processors operatively coupled to computer memory having disposed within it computer program instructions that, when executed by the computer processors, cause the parallel computer to function by:

associating in the PAMI data communications algorithms and bit masks so that each algorithm is associated with a separate bit mask, each bit in each mask representing the presence or absence of a characteristic of a collective instruction to be executed by use of the algorithm associated with that mask;

initializing the PAMI; and

partially preconstructing, upon initialing the PAMI, a bit mask for each type of collective instruction;

receiving in an origin endpoint of the PAMI a collective instruction, the collective instruction specifying transmission of a data communications message from the origin endpoint to at least one target endpoint;

constructing by the origin endpoint a bit mask for the received collective instruction, each bit in the mask representing a characteristic of the received collective instruction, wherein constructing a bit mask for the received collective instruction further comprises constructing the bit mask for the received collective instruction from one of the partially preconstructed bit masks;

selecting by the origin endpoint, from the associated data communications algorithms in dependence upon the constructed bit mask, a data communications algorithm for use in executing the received collective instruction; and

executing the received collective instruction by the origin endpoint, including transmitting, according to the selected data communications algorithm from the origin endpoint to the target endpoint, the data communications message.

2. The parallel computer of claim 1 wherein selecting a data communications algorithm further comprises:

iteratively bitwise comparing with the constructed bit mask the bit masks associated with data communications algorithms until a match is found; and

taking as the selected data communications algorithm the data communications algorithm associated with the bit mask that matches the constructed bit mask.

3. The parallel computer of claim 1 further comprising computer program instructions that cause the parallel computer to function by:

initializing a Message Passing Interface (‘MPI’) communicator; and

partially preconstructing, upon initializing the MPI communicator, a bit mask for each type of collective instruction;

wherein constructing a bit mask for the received collective instruction further comprises constructing the bit mask for the received collective instruction from one of the partially preconstructed bit masks.

4. The parallel computer of claim 1 wherein:

each client comprises a collection of data communications resources dedicated to the exclusive use of an application-level data processing entity;

each context comprises a subset of the collection of data processing resources of a client, context functions, and a work queue of data transfer instructions to be performed by use of the subset through the context functions operated by an assigned thread of execution; and

each task represents a process of execution of the parallel application.

5. The parallel computer of claim 1 wherein each context carries out, through post and advance functions, data communications for the parallel application on data communications resources in the exclusive possession of that context.

6. The parallel computer of claim 1 wherein each context carries out data communications operations independently and in parallel with other contexts.

7. A computer program product for algorithm selection for data communications for a collective operation in a parallel active messaging interface (‘PAMI’) of a parallel computer, the parallel computer comprising a plurality of compute nodes that execute a parallel application, the PAMI comprising data communications endpoints, each endpoint comprising a specification of data communications parameters for a thread of execution on a compute node, including specifications of a client, a context, and a task, the compute nodes and the endpoints coupled for data communications through the PAMI and through data communications resources, the computer program product disposed upon a computer readable storage medium, the computer program product comprising computer program instructions that, when installed and executed, cause the parallel computer to function by:

associating in the PAMI data communications algorithms and bit masks so that each algorithm is associated with a separate bit mask, each bit in each mask representing the presence or absence of a characteristic of a collective instruction to be executed by use of the algorithm associated with that mask;

initializing the PAMI; and

partially preconstructing, upon initialing the PAMI, a bit mask for each type of collective instruction;

receiving in an origin endpoint of the PAMI a collective instruction, the collective instruction specifying transmission of a data communications message from the origin endpoint to at least one target endpoint;

constructing by the origin endpoint a bit mask for the received collective instruction, each bit in the mask representing a characteristic of the received collective instruction, wherein constructing a bit mask for the received collective instruction further comprises constructing the bit mask for the received collective instruction from one of the partially preconstructed bit masks;

selecting by the origin endpoint, from the associated data communications algorithms in dependence upon the constructed bit mask, a data communications algorithm for use in executing the received collective instruction; and

executing the received collective instruction by the origin endpoint, including transmitting, according to the selected data communications algorithm from the origin endpoint to the target endpoint, the data communications message.

8. The computer program product of claim 7 wherein selecting a data communications algorithm further comprises:

iteratively bitwise comparing with the constructed bit mask the bit masks associated with data communications algorithms until a match is found; and

taking as the selected data communications algorithm the data communications algorithm associated with the bit mask that matches the constructed bit mask.

9. The computer program product of claim 7 further comprising computer program instructions that, when installed and executed, cause the parallel computer to function by:

initializing a Message Passing Interface (‘MPI’) communicator; and

partially preconstructing, upon initializing the MPI communicator, a bit mask for each type of collective instruction; and

wherein constructing a bit mask for the received collective instruction further comprises constructing the bit mask for the received collective instruction from one of the partially preconstructed bit masks.

10. The computer program product of claim 7 wherein:

each client comprises a collection of data communications resources dedicated to the exclusive use of an application-level data processing entity;

each context comprises a subset of the collection of data processing resources of a client, context functions, and a work queue of data transfer instructions to be performed by use of the subset through the context functions operated by an assigned thread of execution; and

each task represents a process of execution of the parallel application.

11. The computer program product of claim 7 wherein each context carries out, through post and advance functions, data communications for the parallel application on data communications resources in the exclusive possession of that context.

Assignments (2)
CONFIRMATORY LICENSE Recorded May 12, 2011
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 026265/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2010
From: FARAJ, DANIEL A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 025447/0407 →
Continuity (1)
Related Publication 20120144401A1 · Jun 7, 2012