On 11/8/11 5:25 PM, "George Bosilca" <bosi...@eecs.utk.edu> wrote:

>2. one sided: A quick look in the OSC seems to indicate there are some
>special handling to be done in the RDMA one. Look at
>ompi_osc_rdma_sendreq_t in osc_rdma_sendreq.h, it is using a trick to
>store the remote segments. First, the mca_btl_base_segment_t are stored
>at the end of the structure, in order to allow for dynamic allocation.
>Second, OSC doesn't seems to manipulate pointers to
>mca_btl_base_segment_t, but the content itself. I didn't went too deep
>here, but I think particular attention should be payed to OSC.

I don't entirely remember what I was doing when I wrote that code :).  The
OSC only does puts/gets from the initiator to a single segment on the
target, so the component contains an array of segments, one per peer.  I
only do RDMA when the source is contiguous, so the one in the sendreq is
the segment, not a malloc trick.

I'm planning on rewriting the RDMA one-sided component to implement the
MPI 3 semantics. I think we can make it a whole lot cleaner than the
current implementation.  Which means that if we come up with some rational
semantics for dealing with segments, I can make it work.  If we can get
them implemented before January, even better.

Brian

-- 
  Brian W. Barrett
  Dept. 1423: Scalable System Software
  Sandia National Laboratories






Reply via email to