Fencing data transfers in a parallel active messaging interface of a parallel computer
First Claim
1. A parallel computer that fences data transfers in a parallel active messaging interface (‘
- PAMI’
), comprising;
receiving, at an origin endpoint in the PAMI, a plurality of non-blocking SEND instructions from an application, wherein each of the plurality of SEND instruction specifies a data transfer from the origin endpoint to a target endpoint in the PAMI;
receiving, at an origin endpoint, a FENCE instruction corresponding to transfers between the origin endpoint and the target endpoint,wherein the FENCE instruction advises the application when the transfers between the origin endpoint and the target endpoint are complete,wherein the origin endpoint are on a same compute node, andwherein the transfers between the origin endpoint and the target endpoint occur across a segment of memory shared between the origin endpoint and the target endpoint;
posting the plurality of SEND instruction in an ordered sequence in a work queue of the origin endpoint;
posting the FENCE instruction in the work queue of the origin endpoint at a location in the ordered sequence such that the FENCE instruction is processed after each of the plurality of SEND instructions is processed; and
executing, by the origin endpoint, an advance function comprising initiating execution through the PAMI of instructions in the work queue, such that the FENCE instruction executing only after completion of all SEND instructions initiated prior to the FENCE instruction in the work queue, wherein execution of the FENCE instruction, wherein execution of the FENCE instruction indicates to the application that execution of the SEND instructions is complete.
1 Assignment
0 Petitions
Accused Products
Abstract
Fencing data transfers in a parallel active messaging interface (‘PAMI’) of a parallel computer, the PAMI including data communications endpoints, each endpoint including a specification of data communications parameters for a thread of execution on a compute node, including specifications of a client, a context, and a task; the compute nodes coupled for data communications through the PAMI and through data communications resources including at least one segment of shared random access memory; including initiating execution through the PAMI of an ordered sequence of active SEND instructions for SEND data transfers between two endpoints, effecting deterministic SEND data transfers through a segment of shared memory; and executing through the PAMI, with no FENCE accounting for SEND data transfers, an active FENCE instruction, the FENCE instruction completing execution only after completion of all SEND instructions initiated prior to execution of the FENCE instruction for SEND data transfers between the two endpoints.
-
Citations
12 Claims
-
1. A parallel computer that fences data transfers in a parallel active messaging interface (‘
- PAMI’
), comprising;receiving, at an origin endpoint in the PAMI, a plurality of non-blocking SEND instructions from an application, wherein each of the plurality of SEND instruction specifies a data transfer from the origin endpoint to a target endpoint in the PAMI; receiving, at an origin endpoint, a FENCE instruction corresponding to transfers between the origin endpoint and the target endpoint, wherein the FENCE instruction advises the application when the transfers between the origin endpoint and the target endpoint are complete, wherein the origin endpoint are on a same compute node, and wherein the transfers between the origin endpoint and the target endpoint occur across a segment of memory shared between the origin endpoint and the target endpoint; posting the plurality of SEND instruction in an ordered sequence in a work queue of the origin endpoint; posting the FENCE instruction in the work queue of the origin endpoint at a location in the ordered sequence such that the FENCE instruction is processed after each of the plurality of SEND instructions is processed; and executing, by the origin endpoint, an advance function comprising initiating execution through the PAMI of instructions in the work queue, such that the FENCE instruction executing only after completion of all SEND instructions initiated prior to the FENCE instruction in the work queue, wherein execution of the FENCE instruction, wherein execution of the FENCE instruction indicates to the application that execution of the SEND instructions is complete. - View Dependent Claims (2, 3, 4, 5, 6)
- PAMI’
-
7. A computer program product for fencing data transfers in a parallel active messaging interface (‘
- PAMI’
) of a parallel computer, the computer program product is not a signal, the computer program product disposed on a computer readable storage medium, comprising computer program instructions capable, when executed, of causing the parallel computer to function by;receiving, at an origin endpoint in the PAMI, a plurality of non-blocking SEND instructions from an application, wherein each of the plurality of SEND instruction specifies a data transfer from the origin endpoint to a target endpoint in the PAMI; receiving, at an origin endpoint, a FENCE instruction corresponding to transfers between the origin endpoint and the target endpoint, wherein the FENCE instruction advises the application when the transfers between the origin endpoint and the target endpoint are complete, wherein the origin endpoint are on a same compute node, and wherein the transfers between the origin endpoint and the target endpoint occur across a segment of memory shared between the origin endpoint and the target endpoint; posting the plurality of SEND instruction in an ordered sequence in a work queue of the origin endpoint; posting the FENCE instruction in the work queue of the origin endpoint at a location in the ordered sequence such that the FENCE instruction is processed after each of the plurality of SEND instructions is processed; and executing, by the origin endpoint, an advance function comprising initiating execution through the PAMI of instructions in the work queue, such that the FENCE instruction executing only after completion of all SEND instructions initiated prior to the FENCE instruction in the work queue, wherein execution of the FENCE instruction, wherein execution of the FENCE instruction indicates to the application that execution of the SEND instructions is complete. - View Dependent Claims (8, 9, 10, 11, 12)
- PAMI’
Specification