×

Fencing direct memory access data transfers in a parallel active messaging interface of a parallel computer

  • US 8,527,672 B2
  • Filed: 11/05/2010
  • Issued: 09/03/2013
  • Est. Priority Date: 11/05/2010
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method of fencing direct memory access (‘

  • DMA’

    ) data transfers in a parallel active messaging interface (‘

    PAMI’

    ) of a parallel computer, the parallel computer comprising a plurality of compute nodes that execute a parallel application, the PAMI comprising data communications endpoints, each endpoint comprising 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 and the endpoints coupled for data communications through the PAMI and through data communications resources including DMA controllers operatively coupled to segments of shared random access memory through which the DMA controllers deliver data communications deterministically, in the same order in which the communications are transmitted, the method comprising;

    initiating execution through the PAMI of an ordered sequence of active DMA instructions for DMA data transfers between two endpoints, an origin endpoint and a target endpoint, each DMA instruction effecting a deterministic DMA data transfer through a DMA controller and a segment of shared memory in which the DMA data transfers are effected according to the ordered sequence of the DMA instructions; and

    executing through the PAMI, with no FENCE accounting for DMA data transfers, an active FENCE instruction, the FENCE instruction completing execution only after completion of all DMA instructions initiated prior to execution of the FENCE instruction for DMA data transfers between the two endpoints;

    wherein the DMA instructions comprise DMA PUT instructions, and executing a FENCE instruction further comprises;

    receiving in the origin endpoint the FENCE instruction, the FENCE instruction specifying a FENCE done callback function;

    transmitting the FENCE instruction through the segment of shared memory from the origin endpoint to the target endpoint, the FENCE instruction specifying a FENCE dispatch callback function;

    processing, by the target endpoint after completion of all PUT data transfers previously initiated between the two endpoints, the FENCE instruction, including executing the FENCE dispatch callback function and advising the origin endpoint of the processing of the FENCE instruction; and

    executing by the origin endpoint the FENCE done callback function.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×