[ofiwg] Call today
Hefty, Sean
sean.hefty at intel.com
Thu May 22 12:29:22 PDT 2014
Thanks, Howard, this is helpful.
Regarding the 'tag match class' that you mention, would you create an 'rma class' as a peer, with the RMA operations defined in a similar fashion? If not, why not? Would this also extend to all other data transfer operations? I.e. message queue (send/receive) and atomics, plus any others defined in the future?
> -----Original Message-----
> From: Howard Pritchard [mailto:hppritcha at gmail.com]
> Sent: Thursday, May 22, 2014 11:53 AM
> To: Richard Graham
> Cc: Hefty, Sean; ofiwg at lists.openfabrics.org; ofiwg-
> mpi at lists.openfabrics.org
> Subject: Re: [ofiwg] Call today
>
> Hi Folks,
>
> here is a diagram of a concept that was discussed in a side conversation at
> the last OFA workshop. I'd thought that a msgq (aka tag matcher class)
> object
> should be instantiated via a method of the fabric class.
>
> red lines in the diagram indicated the pointee can be associated with the
> class
> being pointed to by the arrow, using the bind method of the class being
> pointed
> to.
>
> the search_by_addr method of the msgq is for use with FID_RDM endpoints,
> while search_by_ep method is when the msgq is associated with multipled
> FID_MSG type endpoints.
>
> Note the slide is a little old since the EC class has been divided now into
> a EQ and counter type completion notification mechanisms.
>
> Hoping this will maybe help a little here.
>
> Howard
>
>
>
> On Thu, May 22, 2014 at 11:59 AM, Richard Graham <richardg at mellanox.com>
> wrote:
>
>
> Please see inline
>
> -----Original Message-----
> From: Hefty, Sean [mailto:sean.hefty at intel.com]
> Sent: Thursday, May 22, 2014 12:43 PM
> To: Richard Graham; ofiwg at lists.openfabrics.org; ofiwg-
> mpi at lists.openfabrics.org
> Cc: Paul Grun (grun at cray.com); Liran Liss
> Subject: RE: Call today
>
> With permission, copying mailing list on side thread that popped up.
>
> I understand MPI has wild card receives. But tagged semantics are
> useful even when associated with a generic endpoint concept, or a specific
> address. Note the proposed endpoint concept is not necessarily bound to a
> specific piece of hardware, though it may be based on the provider
> implementation. The tagged operations themselves may be implemented by
> hardware and are not restricted to being purely a software construct.
> [rich] If the attempt here is to provide a building block that will
> map to different use-case scenarios, then need to have an architecture that
> will map well onto the areas of interest. MPI is just one such upper level
> service, one that has been called out specifically in the context of the
> proposal you have been presenting. So, following on this (the precise
> definition of end point is still rather fuzzy at this stage) in general,
> there is no such one-to-one mapping of and endpoint to an MPI matching
> context, but there can be an association of a matching context with one or
> more endpoints. What I am suggesting here is that we keep data notions
> around data transfer orthogonal to what is done with the data (tag
> matching, in this case). How the functionality is implemented (hardware
> or not) is separate from how the stack in architected
>
> Tagged interfaces, as well as other interfaces such as message
> queues, may still exist above the endpoint. But that layering of
> interfaces seems better suited above the fabric interfaces (e.g. MPI),
> rather than included with it. This seems more debatable to me though, and
> we could examine whether a domain or fabric object should have send/receive
> capabilities.
> [rich] Need to keep separate how data is transferred (perhaps with
> functions that we may call send/recv) from the ULP's use of this data
> (perhaps also using the a similar naming scheme of send/recv).
>
> - Sean
>
> > -----Original Message-----
> > From: Richard Graham [mailto:richardg at mellanox.com]
> > Sent: Wednesday, May 21, 2014 11:09 AM
> > To: Hefty, Sean
> > Cc: Paul Grun (grun at cray.com); Liran Liss
> > Subject: RE: Call today
> >
> > Tag matching as it comes to MPI semantics is not local to a given
> pair
> > of processes, e.g. MPI has a wild card receive that can take data
> from
> > any source, and therefore the matching context is broader than just
> a
> > single pair of source and destination.
> >
> > Rich
> >
> > -----Original Message-----
> > From: Hefty, Sean [mailto:sean.hefty at intel.com]
> > Sent: Wednesday, May 21, 2014 1:13 PM
> > To: Richard Graham
> > Cc: Paul Grun (grun at cray.com); Liran Liss
> > Subject: RE: Call today
> >
> > Tag matching, RMA, atomics, and message operations are currently
> > associated with an endpoint, but the functions are independent of
> the
> > communication protocol in use. Conceptually, it seems reasonable
> to
> > think of tag matching as a merging of message and RMA write
> operations.
> >
> > I agree that an endpoint is associated with the data source/sink.
> > There is no implied mapping between a process and an endpoint.
> >
> >
> > > -----Original Message-----
> > > From: Richard Graham [mailto:richardg at mellanox.com]
> > > Sent: Tuesday, May 20, 2014 9:22 PM
> > > To: Hefty, Sean
> > > Cc: Paul Grun (grun at cray.com); Liran Liss
> > > Subject: RE: Call today
> > >
> > > I suppose that you could consider tag-matching as part of
> transport.
> > > However, I would argue that such protocols should be independent
> of
> > > whether or not a reliable or unreliable communication protocol is
> > > used
> > (at least
> > > when it comes to the tag support needed for MPI). Also, I
> associate an
> > > end-point with either the source and/or the sync of data. In MPI
> > > tag matching is associated with mpi-level (process,communicator)
> > > pair, and therefore the tag-matching context may be associated
> with
> > > many end-
> > points.
> > > I would therefore keep tag-matching as a separate concept.
> > >
> > > Rich
> > >
> > > -----Original Message-----
> > > From: Hefty, Sean [mailto:sean.hefty at intel.com]
> > > Sent: Tuesday, May 20, 2014 1:26 PM
> > > To: Richard Graham
> > > Cc: Paul Grun (grun at cray.com); Liran Liss
> > > Subject: RE: Call today
> > >
> > > Tag-matching is a transport object (protocol), so I do think it
> > > makes sense being associated with a transport level object (i.e.
> endpoint).
> > >
> > > I thought you were referring to the SRQ, which may or may not be
> a
> > > transport level object. If the sharing of data buffer(s) among
> > > multiple connections is not considered a transport object, then I
> > > agree, it may make sense to have it be a separate object with its
> > > own
> > interfaces.
> > > Alternatively, it could also be a property of endpoints to share
> > > receive buffers.
> > >
> > > When the SRQ appears in the transport object (protocol), it may
> get
> > > more complex.
> > >
> > > For initial thoughts, sharing receive buffers could be handled
> by:
> > >
> > > 1. Creating an explicit SRQ object as a 'peer' to an endpoint.
> SRQ
> > > would have the ability to associate receive buffers with it.
> > > Endpoints would need to be associated with an SRQ to make use of
> it.
> > > 2. Create an SRQ 'endpoint' object. A send-receive endpoint
> could
> > > be created from and inherent the SRQ interfaces.
> > > 3. Add an endpoint property to allow sharing data buffers.
> Shared
> > > buffers could be posted to a domain object, or, alternatively,
> any
> > endpoint.
> > >
> > > Ultimately, the question becomes a matter of where the 'post
> receive
> > > buffer' operation resides, and the behavior of any 'post receive
> buffer'
> > > call which may reside elsewhere. E.g. SRQ::PostRecv() versus
> > > EP::PostRecv(), what is the behavior of EP::PostRecv() if buffer
> > > sharing is enabled?
> > >
> > > These assume SRQ as a non-transport object, or at least one that
> is
> > > not visible to the application.
> > >
> > >
> > >
> > > > Liran mentioned that you wanted me to repeat what I said - my
> only
> > > > comment was that we not couple transport (connection based
> > > > transport) with tag- matching (or any other object supported by
> > > > the
> > library).
> > > > These are two different concepts, and should be kept separate.
> > > >
> > > >
> > > >
> > > > Rich
>
> _______________________________________________
> ofiwg mailing list
> ofiwg at lists.openfabrics.org
> http://lists.openfabrics.org/mailman/listinfo/ofiwg
>
>
More information about the ofiwg
mailing list