IP Library Granted Patent US 9,250,948
Granted Patent B2
US 9,250,948 · App. 13/231,326 · Granted Feb 2, 2016

Establishing a group of endpoints in a parallel computer

Inventors: Charles J. Archer (Rochester, MN); Michael A. Blocksome (Rochester, MN); Joseph D. Ratterman (Rochester, MN); Brian E. Smith (Rochester, MN); Hanhong Xue (Wappingers Falls, NY)
Assignee: International Business Machines Corporation
G06F9/46G06F9/546
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 9,250,948
App. No.
13/231,326
Granted
Feb 2, 2016
Kind
B2
Abstract

A parallel computer executes a number of tasks, each task includes a number of endpoints and the endpoints are configured to support collective operations. In such a parallel computer, establishing a group of endpoints receiving a user specification of a set of endpoints included in a global collection of endpoints, where the user specification defines the set in accordance with a predefined virtual representation of the endpoints, the predefined virtual representation is a data structure setting forth an organization of tasks and endpoints included in the global collection of endpoints and the user specification defines the set of endpoints without a user specification of a particular endpoint; and defining a group of endpoints in dependence upon the predefined virtual representation of the endpoints and the user specification.

Claims (39)

1. An apparatus for establishing a group of endpoints configured to support collective operations in a parallel computer, the parallel computer comprising a plurality of compute nodes coupled for data communications in a point-to-point multi-dimensional data communications network, wherein each compute node executes one or more processes for execution of a parallel application, the apparatus comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory having disposed within computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

receiving a user specification of a set of endpoints included in a global collection of endpoints,

wherein each endpoint is a data communications process executing within the one or more processes that supports communications among other endpoints, each endpoint is a rank in the message passing interface (MPI), and the global collection of endpoints includes all available endpoints,

the user specification defining the set of endpoints in accordance with a predefined virtual representation of the endpoints,

wherein the predefined virtual representation of the endpoints comprises a data structure setting forth an organization of processes and endpoints included in the global collection of endpoints,

wherein the data structure comprises a table of columns and rows, each column specifying a process, each field of the column specifying an endpoint for the process, and each row specifying an endpoint of all processes,

wherein the user specification defines the set of endpoints in relation to the data structure of the predefined virtual representation and without specifying a unique identifier for any particular endpoint in the set of endpoints, and

wherein the user specification comprises a specification of all endpoints included in a column stride, the column stride comprising endpoints of a process included in alternating columns;

defining, as an operational group, a group of endpoints in dependence upon the predefined virtual representation of the endpoints and the user specification; and

executing one or more collective operations using the operational group defined by the group of endpoints.

2. The apparatus of claim 1 wherein:

receiving a user specification of a set of endpoints further comprises receiving a plurality of user specifications of a set of endpoints, each specification defining a different group of endpoints in accordance with the predefined virtual representation of the endpoints without uniquely specifying a particular endpoint; and

defining a group of endpoints further comprises defining a group of endpoints comprising each set defined by the plurality of user specifications.

3. The apparatus of claim 2 wherein receiving a user specification of a set of endpoints further comprises receiving a specification of all endpoints included in a row stride, the row stride comprising endpoints of all tasks included in alternating rows.

4. The apparatus of claim 2 wherein receiving a user specification of a set of endpoints further comprises receiving a specification of all endpoints included in a checkerboard pattern of the table, the checkerboard pattern of the table comprising:

for alternating columns: endpoints of alternating rows beginning at a first row in the column; and

for all other columns: endpoints of alternating rows beginning at a second row in the column.

5. The apparatus of claim 1 wherein the predefined virtual representation of the endpoints comprises a multi-dimensional matrix of endpoints, with each dimension of the matrix corresponding to a dimension of the point-to-point multi-dimensional data communications network of the parallel computer, with each field of the multi-dimensional matrix representing an endpoint executing on a compute node in the parallel computer.

6. The apparatus of claim 5 wherein receiving a user specification of a set of endpoints further comprises receiving a specification of endpoints executing on compute nodes comprising a nearest neighbor of a compute node upon which a particular endpoint is executing without uniquely identifying the particular endpoints.

7. The apparatus of claim 1 wherein the user specification defines at least one endpoint that does not exist.

8. A computer program product for establishing a group of endpoints configured to support collective operations in a parallel computer, the parallel computer comprising a plurality of compute nodes coupled for data communications in a point-to-point multi-dimensional data communications network, wherein each compute node executes an endpoint, the computer program product disposed upon a computer readable medium, wherein the computer readable medium is not a signal, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

receiving a user specification of a set of endpoints included in a global collection of endpoints,

wherein each endpoint is a data communications process executing within the one or more processes that supports communications among other endpoints, each endpoint is a rank in the message passing interface (MPI), and the global collection of endpoints includes all available endpoints,

the user specification defining the set of endpoints in accordance with a predefined virtual representation of the endpoints,

wherein the predefined virtual representation of the endpoints comprises a data structure setting forth an organization of processes and endpoints included in the global collection of endpoints,

wherein the data structure comprises a table of columns and rows, each column specifying a process, each field of the column specifying an endpoint for the process, and each row specifying an endpoint of all processes,

wherein the user specification defines the set of endpoints in relation to the data structure of the predefined virtual representation and without specifying a unique identifier for any particular endpoint in the set of endpoints, and

wherein the user specification comprises a specification of all endpoints included in a column stride, the column stride comprising endpoints of a process included in alternating columns;

defining, as an operational group, a group of endpoints in dependence upon the predefined virtual representation of the endpoints and the user specification; and

executing one or more collective operations using the operational group defined by the group of endpoints.

9. The computer program product of claim 8 wherein:

receiving a user specification of a set of endpoints further comprises receiving a plurality of user specifications of a set of endpoints, each specification defining a different group of endpoints in accordance with the predefined virtual representation of the endpoints without uniquely specifying a particular endpoint; and

defining a group of endpoints further comprises defining a group of endpoints comprising each set defined by the plurality of user specifications.

10. The computer program product of claim 9 wherein receiving a user specification of a set of endpoints further comprises receiving a specification of all endpoints included in a row stride, the row stride comprising endpoints of all tasks included in alternating rows.

11. The computer program product of claim 9 wherein receiving a user specification of a set of endpoints further comprises receiving a specification of all endpoints included in a checkerboard pattern of the table, the checkerboard pattern of the table comprising:

for alternating columns: endpoints of alternating rows beginning at a first row in the column; and

for all other columns: endpoints of alternating rows beginning at a second row in the column.

12. The computer program product of claim 8 wherein the predefined virtual representation of the endpoints comprises a multi-dimensional matrix of endpoints, with each dimension of the matrix corresponding to a dimension of the point-to-point multi-dimensional data communications network of the parallel computer, with each field of the multi-dimensional matrix representing an endpoint executing on a compute node in the parallel computer.

13. The computer program product of claim 12 wherein receiving a user specification of a set of endpoints further comprises receiving a specification of endpoints executing on compute nodes comprising a nearest neighbor of a compute node upon which a particular endpoint is executing without uniquely identifying the particular endpoints.

Assignments (2)
CONFIRMATORY LICENSE Recorded Nov 8, 2011
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 027195/0817 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2011
From: ARCHER, CHARLES J.; BLOCKSOME, MICHAEL A.; RATTERMAN, JOSEPH D.; SMITH, BRIAN E.; XUE, HANHONG
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026896/0295 →
Continuity (1)
Related Publication 20130067479A1 · Mar 14, 2013