IP Library Granted Patent US 9,473,545
Granted Patent B2
US 9,473,545 · App. 14/026,107 · Granted Oct 18, 2016

Administering group identifiers of processes in a parallel computer

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,473,545
App. No.
14/026,107
Granted
Oct 18, 2016
Kind
B2
Abstract

Administering group identifiers of processes in a parallel computer includes each process in a set of processes, receiving from a compute node of the plurality of compute nodes, a request to establish the set of processes as an operational group including receiving a list of process identifiers for each process of the set of processes. Embodiments also include each process generating without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers.

Claims (52)

1. A method of administering group identifiers of processes in a parallel computer, the parallel computer comprising a plurality of compute nodes, the compute nodes coupled for data communications by one or more data communications networks, one or more of the compute nodes executing a set of processes, the set of processes organized in an operational group for collective parallel operations, the method comprising:

receiving from a compute node of the plurality of compute nodes, by each process in the set of processes, a request to establish the set of processes as an operational group including receiving a list of process identifiers for each process of the set of processes; and

generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers.

2. The method of claim 1 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers includes:

generating based on the list of process identifiers, by each process, a stride triplet comprising the following elements: a lowest process identifier, a value representing a stride size between the set of processes, and a number of processes in the set of processes; and

generating, by each process without communication amongst the processes and in dependence upon the stride triplet, the unique group identifier.

3. The method of claim 2 wherein generating, by each process in dependence upon the stride triplet, a unique group identifier further comprises:

concatenating the elements of the stride triplet.

4. The method of claim 2 , further comprising:

responsive to receiving a second request to establish the set of processes as a second group, without previously destroying the operational group, generating a second unique group identifier for the second group in dependence upon the stride triplet and an instance identifier.

5. The method of claim 4 wherein generating a second unique group identifier for the second group in dependence upon the stride triplet and an instance identifier includes appending the instance identifier to the stride triplet.

6. The method of claim 1 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers further comprises:

sorting the process identifiers of the list of process identifiers according to a predefined sort criteria; and

concatenating the sorted process identifiers, wherein the concatenated process identifiers comprises the unique group identifier.

7. The method of claim 1 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers further comprises:

sorting the process identifiers of the list of process identifiers according to a predefined sort criteria; and

hashing the sorted process identifiers to generate a hash value, wherein the hash value comprises the unique group identifier.

8. The method of claim 7 wherein

at least one process is a member of a second operational group and the group identifier of the second operational group matches the hash value; and

wherein the method further includes:

determining, by the at least one process, that the group identifier of the second operational group matches the hash value; and

in response to determining that the group identifier of the second operational group matches the hash value, informing, by the at least one process, the other processes of the operational group, that the group identifier of the second operational group matches the hash value; and

in response to the group identifier of the second operational group matching the hash value, changing, by each process, the hash value to a same new hash value.

9. The method of claim 1 , further comprising destroying, by each process, the unique group identifier in response to destruction of the operational group.

10. An apparatus for executing administering group identifiers of processes in a parallel computer, the parallel computer comprising a plurality of compute nodes, the compute nodes coupled for data communications by one or more data communications networks, one or more of the compute nodes executing a set of processes, the set of processes organized in an operational group for collective parallel operations, the apparatus comprising a computer processor and computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

receiving from a compute node of the plurality of compute nodes, by each process in the set of processes, a request to establish the set of processes as an operational group including receiving a list of process identifiers for each process of the set of processes; and

generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers.

11. The apparatus of claim 10 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers includes:

generating based on the list of process identifiers, by each process, a stride triplet comprising the following elements: a lowest process identifier, a value representing a stride size between the set of processes, and a number of processes in the set of processes; and

generating, by each process without communication amongst the processes and in dependence upon the stride triplet, the unique group identifier.

12. The apparatus of claim 10 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers further comprises:

sorting the process identifiers of the list of process identifiers according to a predefined sort criteria; and

concatenating the sorted process identifiers, wherein the concatenated process identifiers comprises the unique group identifier.

13. The apparatus of claim 10 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers further comprises:

sorting the process identifiers of the list of process identifiers according to a predefined sort criteria; and

hashing the sorted process identifiers to generate a hash value, wherein the hash value comprises the unique group identifier.

14. A computer program product for administering group identifiers of processes in a parallel computer, the parallel computer comprising a plurality of compute nodes, the compute nodes coupled for data communications by one or more data communications networks, one or more of the compute nodes executing a set of processes, the set of processes organized in an operational group for collective parallel operations, the computer program product disposed upon a computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

receiving from a compute node of the plurality of compute nodes, by each process in the set of processes, a request to establish the set of processes as an operational group including receiving a list of process identifiers for each process of the set of processes; and

generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers.

15. The computer program product of claim 14 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers includes:

generating based on the list of process identifiers, by each process, a stride triplet comprising the following elements: a lowest process identifier, a value representing a stride size between the set of processes, and a number of processes in the set of processes; and

generating, by each process without communication amongst the processes and in dependence upon the stride triplet, the unique group identifier.

16. The computer program product of claim 14 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers further comprises:

sorting the process identifiers of the list of process identifiers according to a predefined sort criteria; and

concatenating the sorted process identifiers, wherein the concatenated process identifiers comprises the unique group identifier.

17. The computer program product of claim 14 wherein generating, by each process without communication amongst the processes, a unique group identifier in dependence upon the list of process identifiers further comprises:

sorting the process identifiers of the list of process identifiers according to a predefined sort criteria; and

hashing the sorted process identifiers to generate a hash value, wherein the hash value comprises the unique group identifier.

18. The computer program product of claim 14 , further comprising:

destroying, by each process, the unique group identifier in response to destruction of the operational group.

19. The computer program product of claim 14 wherein the computer readable medium comprises a signal medium.

20. The computer program product of claim 14 wherein the computer readable medium comprises a storage medium.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2013
From: ARCHER, CHARLES J.; JEA, TSAI-YANG; KIM, CHULHO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031201/0005 →