IP Library › Granted Patent US 8,296,430
Granted Patent B2
US 8,296,430 · App. 11/764,333 · Granted Oct 23, 2012

Administering an epoch initiated for remote memory access

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,296,430
App. No.
11/764,333
Granted
Oct 23, 2012
Kind
B2
Abstract

Methods, systems, and products are disclosed for administering an epoch initiated for remote memory access that include: initiating, by an origin application messaging module on an origin compute node, one or more data transfers to a target compute node for the epoch; initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch, including rejecting any new data transfers after initiating the closing stage for the epoch; determining, by the origin application messaging module, whether the data transfers have completed; and closing, by the origin application messaging module, the epoch if the data transfers have completed.

Claims (66)

1. A method of administering an epoch initiated for remote memory access, the method comprising:

initiating, by an origin application messaging module on an origin compute node, one or more data transfers to a target compute node for the epoch;

initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch, including rejecting any new data transfers after initiating the closing stage for the epoch and prior to closing the epoch;

determining, by the origin application messaging module, whether the data transfers have completed; and

closing, by the origin application messaging module, the epoch if the data transfers have completed;

wherein the origin compute node and the target compute node are comprised in a parallel computer, the parallel computer comprising a plurality of compute nodes connected for data communications through a data communications network, the data communications network optimized for point to point data communications.

2. The method of claim 1 wherein initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises initiating the closing stage for the epoch before the data transfers are complete.

3. The method of claim 1 wherein initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises initiating the closing stage for the epoch after the data transfers are completed.

4. The method of claim 1 wherein:

each data transfer is effected using a get operation;

initiating, by an origin application messaging module on a origin compute node, one or more data transfers to a target compute node for the epoch further comprises incrementing a get counter upon initiation of the get operation for each data transfer;

the method further comprises decrementing, by the origin application messaging module, the get counter upon completion of each get operation; and

determining, by the origin application messaging module, whether the data transfers have completed further comprises determining whether a value of the get counter is zero.

5. The method of claim 1 wherein:

each data transfer is effected using a put operation;

initiating, by an origin application messaging module on a origin compute node, one or more data transfers to a target compute node for the epoch further comprises incrementing a put counter upon initiation of the put operation for each data transfer;

the method further comprises incrementing, by a target application messaging module on the target compute node, a got counter upon completion of each put operation;

initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises sending a value of the put counter to the target compute node;

the method further comprises:

determining, by the target application messaging module, whether the value of the put counter matches a value of the got counter, and

sending, by the target application messaging module to the origin application messaging module, a completion acknowledgement if the value of the put counter matches the value of the got counter; and

determining, by the origin application messaging module, whether the data transfers have completed further comprises determining whether the completion acknowledgement has been received in the origin compute node.

6. A system capable of administering an epoch initiated for remote memory access, the system comprising one or more computer processors, computer memory operatively coupled to the computer processors, the computer memory having disposed within it computer program instructions capable of:

initiating, by an origin application messaging module on an origin compute node, one or more data transfers to a target compute node for the epoch;

initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch, including rejecting any new data transfers after initiating the closing stage for the epoch and prior to closing the epoch;

determining, by the origin application messaging module, whether the data transfers have completed; and

closing, by the origin application messaging module, the epoch if the data transfers have completed;

wherein the origin compute node and the target compute node are comprised in a parallel computer, the parallel computer comprising a plurality of compute nodes connected for data communications through a data communications network, the data communications network optimized for point to point data communications.

7. The system of claim 6 wherein initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises initiating the closing stage for the epoch before the data transfers are complete.

8. The system of claim 6 wherein initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises initiating the closing stage for the epoch after the data transfers are completed.

9. The system of claim 6 wherein:

each data transfer is effected using a get operation;

initiating, by an origin application messaging module on a origin compute node, one or more data transfers to a target compute node for the epoch further comprises incrementing a get counter upon initiation of the get operation for each data transfer;

the computer memory also has disposed within it computer program instructions capable of decrementing, by the origin application messaging module, the get counter upon completion of each get operation; and

determining, by the origin application messaging module, whether the data transfers have completed further comprises determining whether a value of the get counter is zero.

10. The system of claim 6 wherein:

each data transfer is effected using a put operation;

initiating, by an origin application messaging module on a origin compute node, one or more data transfers to a target compute node for the epoch further comprises incrementing a put counter upon initiation of the put operation for each data transfer;

the computer memory also has disposed within it computer program instructions capable of incrementing, by a target application messaging module on the target compute node, a got counter upon completion of each put operation;

initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises sending a value of the put counter to the target compute node;

the computer memory also has disposed within it computer program instructions capable of:

determining, by the target application messaging module, whether the value of the put counter matches a value of the got counter, and

sending, by the target application messaging module to the origin application messaging module, a completion acknowledgement if the value of the put counter matches the value of the got counter; and

determining, by the origin application messaging module, whether the data transfers have completed further comprises determining whether the completion acknowledgement has been received in the origin compute node.

11. A computer program product for administering an epoch initiated for remote memory access, the computer program product comprising a computer readable non-transmission medium, the computer readable non-transmission medium comprising computer program instructions capable of:

initiating, by an origin application messaging module on an origin compute node, one or more data transfers to a target compute node for the epoch;

initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch, including rejecting any new data transfers after initiating the closing stage for the epoch and prior to closing the epoch;

determining, by the origin application messaging module, whether the data transfers have completed; and

closing, by the origin application messaging module, the epoch if the data transfers have completed;

wherein the origin compute node and the target compute node are comprised in a parallel computer, the parallel computer comprising a plurality of compute nodes connected for data communications through a data communications network, the data communications network optimized for point to point data communications.

12. The computer program product of claim 11 wherein initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises initiating the closing stage for the epoch before the data transfers are complete.

13. The computer program product of claim 11 wherein initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises initiating the closing stage for the epoch after the data transfers are completed.

14. The computer program product of claim 11 wherein:

each data transfer is effected using a get operation;

initiating, by an origin application messaging module on a origin compute node, one or more data transfers to a target compute node for the epoch further comprises incrementing a get counter upon initiation of the get operation for each data transfer;

the computer program product further comprises computer program instructions capable of decrementing, by the origin application messaging module, the get counter upon completion of each get operation; and

determining, by the origin application messaging module, whether the data transfers have completed further comprises determining whether a value of the get counter is zero.

15. The computer program product of claim 11 wherein:

each data transfer is effected using a put operation;

initiating, by an origin application messaging module on a origin compute node, one or more data transfers to a target compute node for the epoch further comprises incrementing a put counter upon initiation of the put operation for each data transfer;

the computer program product further comprises computer program instructions capable of incrementing, by a target application messaging module on the target compute node, a got counter upon completion of each put operation;

initiating, by the origin application messaging module after initiating the data transfers, a closing stage for the epoch further comprises sending a value of the put counter to the target compute node;

the computer program product further comprises computer program instructions capable of:

determining, by the target application messaging module, whether the value of the put counter matches a value of the got counter, and

sending, by the target application messaging module to the origin application messaging module, a completion acknowledgement if the value of the put counter matches the value of the got counter; and

determining, by the origin application messaging module, whether the data transfers have completed further comprises determining whether the completion acknowledgement has been received in the origin compute node.

Assignments (2)
CONFIRMATORY LICENSE Recorded Feb 26, 2008
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: ENERGY, U.S. DEPARTMENT OF
Reel/Frame 020559/0997 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2007
From: BLOCKSOME, MICHAEL A; MILLER, DOUGLAS R
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 019443/0145 →
Continuity (1)
Related Publication 20080313661A1 · Dec 18, 2008