IP Library Granted Patent US 9,055,078
Granted Patent B2
US 9,055,078 · App. 13/738,657 · Granted Jun 9, 2015

Token-based flow control of messages in a parallel computer

Inventors: Charles J. Archer (Rochester, MN); James E. Carey (Rochester, MN); Philip J. Sanders (Rochester, MN); Brian E. Smith (Knoxville, TN)
Assignee: International Business Machines Corporation
H04L67/1012H04L47/215
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,055,078
App. No.
13/738,657
Granted
Jun 9, 2015
Kind
B2
Abstract

Token-based flow control of messages in a parallel computer, the parallel computer including a plurality of compute nodes, each compute node including one or more computer processors, including: allocating, by a token administration module to a plurality of the computer processors in the parallel computer, a number of data communications tokens; identifying all communicators executing on each computer processor, where each communicator is participating in a distinct parallel operation executing on the parallel computer; allocating, to the communicators, the data communications tokens; determining, by a communicator attempting to send data to the destination, whether the communicator has enough available data communications tokens to send the data to the destination; and responsive to determining that the communicator has enough available data communications tokens to send the data, sending, by the communicator, the data to the destination.

Claims (29)

1. An apparatus for token-based flow control of messages in a parallel computer executing a plurality of parallel operations, the parallel computer including a plurality of compute nodes, each compute node including one or more computer processors, the apparatus comprising a computer memory operatively coupled to the one or more computer processors, the computer memory having disposed within it computer program instructions that, when executed by the one or more computer processors, cause the apparatus to carry out the steps of:

allocating, by a token administration module to a plurality of the computer processors in the parallel computer, a number of data communications tokens, wherein:

each data communications token represents an amount of data that a computer processor may send to a destination; and

the number of data communications tokens allocated to each computer processor is determined in dependence upon token distribution rules;

identifying, by the token administration module for each computer processor, all communicators executing on the computer processor, wherein each communicator is participating in a distinct parallel operation executing on the parallel computer;

allocating, by the token administration module to the communicators, the data communications tokens;

determining, by a communicator attempting to send data to the destination, whether the communicator has enough available data communications tokens to send the data to the destination; and

responsive to determining that the communicator has enough available data communications tokens to send the data, sending, by the communicator, the data to the destination.

2. The apparatus of claim 1 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of, responsive to determining that the communicator does not have enough available data communications tokens to send the data to the destination, requesting, by the communicator to an additional communicator executing on the computer processor, additional data communications tokens.

3. The apparatus of claim 2 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of receiving, by the communicator, additional data communications tokens.

4. The apparatus of claim 3 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of returning, from the communicator to the additional communicator, the additional data communications tokens.

5. The apparatus of claim 3 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of returning, from the communicator to the token administration module, the additional data communications tokens.

6. The apparatus of claim 1 wherein allocating the data communications tokens further comprises allocating the data communications tokens in dependence upon token allocation rules.

7. The apparatus of claim 1 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of maintaining, by each communicator executing on the computer processor, a list of candidate communicators executing on the computer processor that have available data communications tokens.

8. A computer program product for token-based flow control of messages in a parallel computer executing a plurality of parallel operations, the parallel computer including a plurality of compute nodes, each compute node including one or more computer processors, the computer program product disposed upon a non-transitory computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

allocating, by a token administration module to a plurality of the computer processors in the parallel computer, a number of data communications tokens, wherein:

each data communications token represents an amount of data that a computer processor may send to a destination; and

the number of data communications tokens allocated to each computer processor is determined in dependence upon token distribution rules;

identifying, by the token administration module for each computer processor, all communicators executing on the computer processor, wherein each communicator is participating in a distinct parallel operation executing on the parallel computer;

allocating, by the token administration module to the communicators, the data communications tokens;

determining, by a communicator attempting to send data to the destination, whether the communicator has enough available data communications tokens to send the data to the destination; and

responsive to determining that the communicator has enough available data communications tokens to send the data, sending, by the communicator, the data to the destination.

9. The computer program product of claim 8 further comprising computer program instructions that, when executed, cause the computer to carry out the step of, responsive to determining that the communicator does not have enough available data communications tokens to send the data to the destination, requesting, by the communicator to an additional communicator executing on the computer processor, additional data communications tokens.

10. The computer program product of claim 9 further comprising computer program instructions that, when executed, cause the computer to carry out the step of receiving, by the communicator, additional data communications tokens.

11. The computer program product of claim 10 further comprising computer program instructions that, when executed, cause the computer to carry out the step of returning, from the communicator to the additional communicator, the additional data communications tokens.

12. The computer program product of claim 10 further comprising computer program instructions that, when executed, cause the computer to carry out the step of returning, from the communicator to the token administration module, the additional data communications tokens.

13. The computer program product of claim 8 wherein allocating the data communications tokens further comprises allocating the data communications tokens in dependence upon token allocation rules.

14. The computer program product of claim 8 further comprising computer program instructions that, when executed, cause the computer to carry out the step of maintaining, by each communicator executing on the computer processor, a list of candidate communicators executing on the computer processor that have available data communications tokens.

15. The computer program product of claim 8 wherein the computer readable medium comprises a storage medium.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2013
From: ARCHER, CHARLES J.; CAREY, JAMES E.; SANDERS, PHILIP J.; SMITH, BRIAN E.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029607/0038 →
Continuity (1)
Related Publication 20140195688A1 · Jul 10, 2014