Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for ensuring reliability of transmission of packets from an initiating task at a first node to a target task at a second node connected to the first node via a network fabric, where both the first node and second node have a host fabric interface (HFI) that provides at least one HFI window assigned to respective tasks for handling transmission of global shared memory (GSM) packets, the method comprising: generating a GSM packet from a command issued by the initiating task to be transmitted to the target task; wherein a measurement of time within the system is divided into multiple epochs and every local task maintains an epoch for each remote task with which the local task interacts via a local task HFI window; automatically inserting a current epoch of the initiating task into the GSM packet, wherein a copy of the current epoch of the initiating task is maintained by the target task, and wherein only GSM packets with an epoch that is the current epoch of the initiating task is accepted by the target task; and issuing the GSM packet with the current epoch inserted therein to the network fabric.
2. The method of claim 1 , further comprising: monitoring for receipt of a notification of delivery of the GSM packet to the target task; and when the notification of delivery is not received: updating the current epoch to a next epoch value; transmitting the next epoch value to the target task; receiving confirmation of an update of the current epoch at the target task to the next epoch value; and re-transmitting the GSM packet with the next epoch value inserted therein.
3. The method of claim 2 , further comprising: establishing a timeout period in which the notification of delivery is to be received; and initiating said updating of the current epoch when the timeout period expires without the receipt of the notification of delivery.
4. The method of claim 2 , further comprising: receiving a GSM command from the initiating task to update the current epoch; generating a GSM message with the next epoch value; and transmitting the GSM message with the next epoch value to the target task.
5. The method of claim 1 , further comprising: receiving a first epoch from the target task; storing the first epoch of the target task for utilization in evaluating GSM packets received from the target task; when a GSM packet is received from the target task: retrieving the epoch within the GSM packet; comparing the epoch to the first epoch; and when the epoch within the GSM packet does not match the first epoch, discarding the GSM packet.
6. The method of claim 5 , wherein when the epoch within the GSM packet matches the first epoch, said method further comprises: accepting the GSM packet at that target window; processing the operation provided by the GSM packet; and issuing a notification of delivery to the initiating task via the network fabric.
7. The method of claim 1 , further comprising: receiving the GSM command from the initiating task; determining a type of operation performed by the GSM command, from among a first type operation and a second type operation; when the GSM command is for the first type operation, initiating a guaranteed once delivery processing for the GSM packet generated from the GSM command, wherein the GSM packet is issued only once and delivery of the GSM packet may be retried at the target task multiple times, wherein notification is provided only when the GSM packet is received at the target task, without consideration of an epoch of the initiating tasks; and when the GSM command is for the second type operation, initiating a guaranteed once notification processing for the GSM packet generated from the GSM command, wherein the GSM packet is issued and re-issued for each change in the epoch of the initiating task until delivery to the target task of the GSM packet within the correct epoch is notified to the initiating task.
8. A processing node within a distributed data processing system comprising: a processing unit with an initiating task executing thereon, said initiating task being a local task of a distributed job with multiple tasks executing at different nodes across a global shared memory (GSM) environment; a local memory coupled to the processing unit; and a host fabric interface (HFI) including a window assigned to the initiating task and processing logic for ensuring reliability of transmission of packets from the initiating task to a target task executing on a second node with a second HFI window connected to the HFI via a network fabric, wherein the processing logic comprises logic for: generating a GSM packet from a command issued by the initiating task to be transmitted to the target task; wherein a measurement of time within the system is divided into multiple epochs and every local task maintains an epoch for each remote task with which the local task interacts via a local task HFI window; automatically inserting a current epoch of the initiating task into the GSM packet, wherein a copy of the current epoch of the initiating task is maintained by the target task, and wherein only GSM packets with an epoch that is the current epoch of the initiating task is accepted by the target task; and issuing the GSM packet with the current epoch inserted therein to the network fabric.
9. The processing node of claim 8 , wherein said processing logic further comprises logic for: establishing a timeout period in which the notification of delivery is to be received; monitoring for receipt of a notification of delivery of the GSM packet to the target task; and when the notification of delivery is not received within the timeout period: updating the current epoch to a next epoch value; transmitting the next epoch value to the target task; receiving confirmation of an update of the current epoch at the target task to the next epoch value; and re-transmitting the GSM packet with the next epoch value inserted therein.
10. The processing node of claim 8 , said processing logic further comprising logic for: receiving a GSM command from the initiating task to update the current epoch; generating a GSM message with the next epoch value; and transmitting the GSM message with the next epoch value to the target task.
11. The processing node of claim 8 , said processing logic further comprising logic for: receiving a first epoch from the target task; storing the first epoch of the target task for utilization in evaluating GSM packets received from the target task; when a GSM packet is received from the target task: retrieving the epoch within the GSM packet; comparing the epoch to the first epoch; and when the epoch within the GSM packet does not match the first epoch, discarding the GSM packet.
12. The processing node of claim 11 , wherein when the epoch within the GSM packet matches the first epoch, said processing logic further comprises logic for: accepting the GSM packet at that target window; processing the operation provided by the GSM packet; and issuing a notification of delivery to the initiating task via the network fabric.
13. The processing node of claim 7 , said processing logic further comprising logic for: receiving the GSM command from the initiating task; determining a type of operation performed by the GSM command, from among a first type operation and a second type operation; when the GSM command is for the first type operation, initiating a guaranteed once delivery processing for the GSM packet generated from the GSM command, wherein the GSM packet is issued only once and delivery of the GSM packet may be retried at the target task multiple times, wherein notification is provided only when the GSM packet is received at the target task, without consideration of an epoch of the initiating tasks; and when the GSM command is for the second type operation, initiating a guaranteed once notification processing for the GSM packet generated from the GSM command, wherein the GSM packet is issued and re-issued for each change in the epoch of the initiating task until delivery to the target task of the GSM packet within the correct epoch is notified to the initiating task.
14. A computer program product comprising: a computer storage medium; and program code on the computer storage medium for ensuring reliability of transmission of packets from an initiating task at a first node to a target task at a second node connected to the first node via a network fabric, where both the first node and second node have a host fabric interface (HFI) that provides at least one HFI window assigned to the respective tasks for handling transmission of global shared memory (GSM) packets, wherein said program code further comprises code for: generating a GSM packet from a command issued by the initiating task to be transmitted to the target task; wherein a measurement of time within the system is divided into multiple epochs and every local task maintains an epoch for each remote task with which the local task interacts via a local task HFI window; automatically inserting a current epoch of the initiating task into the GSM packet, wherein a copy of the current epoch of the initiating task is maintained by the target task, and wherein only GSM packets with an epoch that is the current epoch of the initiating task is accepted by the target task; and issuing the GSM packet with the current epoch inserted therein to the network fabric.
15. The computer program product of claim 14 , further comprising program code for: monitoring for receipt of a notification of delivery of the GSM packet to the target task; and when the notification of delivery is not received: updating the current epoch to a next epoch value; transmitting the next epoch value to the target task; receiving confirmation of an update of the current epoch at the target task to the next epoch value; and re-transmitting the GSM packet with the next epoch value inserted therein.
16. The computer program product of claim 15 , further comprising program code for: establishing a timeout period in which the notification of delivery is to be received; and initiating said updating of the current epoch when the timeout period expires without the receipt of the notification of delivery.
17. The computer program product of claim 15 , further comprising program code for: receiving a GSM command from the initiating task to update the current epoch; generating a GSM message with the next epoch value; and transmitting the GSM message with the next epoch value to the target task.
18. The computer program product of claim 14 , further comprising program code for: receiving a first epoch from the target task; storing the first epoch of the target task for utilization in evaluating GSM packets received from the target task; when a GSM packet is received from the target task: retrieving the epoch within the GSM packet; comparing the epoch to the first epoch; and when the epoch within the GSM packet does not match the first epoch, discarding the GSM packet.
19. The computer program product of claim 18 , wherein when the epoch within the GSM packet matches the first epoch, said program code further comprises code for: accepting the GSM packet at that target window; processing the operation provided by the GSM packet; and issuing a notification of delivery to the initiating task via the network fabric.
20. The computer program product of claim 14 , further comprising program code for: receiving the GSM command from the initiating task; determining a type of operation performed by the GSM command, from among a first type operation and a second type operation; when the GSM command is for the first type operation, initiating a guaranteed once delivery processing for the GSM packet generated from the GSM command, wherein the GSM packet is issued only once and delivery of the GSM packet may be retried at the target task multiple times, wherein notification is provided only when the GSM packet is received at the target task, without consideration of an epoch of the initiating tasks; and when the GSM command is for the second type operation, initiating a guaranteed once notification processing for the GSM packet generated from the GSM command, wherein the GSM packet is issued and re-issued for each change in the epoch of the initiating task until delivery to the target task of the GSM packet within the correct epoch is notified to the initiating task.
Unknown
September 14, 2010
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.