[openfabrics-ewg] [openib-general] OFED 1.1 release - schedule and features

Michael Krause krause at cup.hp.com
Thu Jul 13 08:13:12 PDT 2006


At 03:49 PM 7/12/2006, Fabian Tillier wrote:
>Hi Mike,
>
>On 7/12/06, Michael Krause <krause at cup.hp.com> wrote:
>>
>>At 09:48 AM 7/12/2006, Jeff Broughton wrote:
>>
>>>Modifying the sockets API is just defining yet another RDMA API, and we have
>>>so many already....
>>
>>I disagree.  This effort has distilled the API to basically one for RDMA
>>developers.  Applications are supported over this via either MPI or Sockets.
>
>There's been a lot of effort to make the RDMA verbs easy to use.  With
>the RDMA CM, socket-like connection semantics can be used to establish
>the connection between QPs.  The connection establishment is the hard
>part - doing I/O is trivial in comparisson.  This verbs and RDMA CM
>have nothing to do with MPI.
>
>If an application is going to be RDMA aware, I don't see any reason it
>shouldn't just use the verbs directly and use the RDMA CM to establish
>the connections.

What's your point?  It seems you are in agreement that there is a single 
RDMA API that people can use.


>>    It seems rather self limiting to think the traditional BSD synchronous
>>Sockets API is all the world should be able to use when it comes to Sockets.
>>  Sockets developers could easily incorporate the extensions into their
>>applications providing them with improved designs and flexibility without
>>having to learn about RDMA itself.
>
>Wait, you want applications to be able to register memory and issue
>RDMA operations, but not have to learn about RDMA?  How does that make
>sense?

The Sockets API extensions allow developers to register memory.   That has 
been a desire by many when it comes to SDP or copy avoidance technology as 
it optimizes the performance path by eliminating the need to do per op 
registration.  For many applications which already known working sets, they 
can use this to enable the OS and underlying infrastructure to take 
advantage of this fact to improve performance and quality of the 
solution.  The extensions provide the async communications and event 
collection mechanisms to also improve performance over the rather limiting 
select / poll supported by Sockets today.

It currently does not support explicit RDMA but it is rather trivial to add 
such calls and remove the need to interject SDP if desired.    The benefits 
of such new API extensions are there for those that want to eliminate one 
more ULP with its unfortunate IP cloud over head.


>>  If the couple of calls necessary to
>>extend this API to support direct RDMA would allow them to eliminate SDP
>>entirely, well, that has benefits that go beyond just its all Sockets;
>
>For a socket implementation to support RDMA, the socket must have an
>underlying RDMA QP.  This means that if you want the application to
>not have to be verbs-aware, you can't really get rid of SDP - you're
>just extending SDP to let the application have a part in memory
>registration and RDMA, while still supporting the traditional BSD
>operations.  This is IMO more complex than just letting applications
>interface directly with verbs, especially since the SDP implementation
>will size the QP for its own use, without a means for negotiating with
>the user so that you don't cause buffer overruns.

Please take a look at the API extensions.   I never stated that one gets 
rid of SDP unless one adds the RDMA-explicit calls.

As for complexity, well, the goal is to extend to Sockets developers the 
optimal communication paradigm already available on OS such as Windows 
without having to leave with the same unfortunate constraints imposed by 
the OS.  The same logic applies to extending the benefits derived from MPI 
which supports async communications as well as put / get semantics which 
would be analogous to the additional RDMA interfaces I referenced.

I find it strange that people would argue against improving the Sockets 
developer's tool suite when the benefits are already proven elsewhere 
within the industry and even within this open source effort.  Giving the 
millions of Sockets developers the choice of a set of extensions that work 
over both RDMA and traditional network stacks seems like a no 
brainer.  Trying to force them to use a native RDMA API even if 
semantically similar to Sockets seems like a poor path to pursue.  Leave 
the RDMA API to the middleware providers and those that need to be close 
the metal.


>>it also eliminates the IP cloud that hovers over SDP licensing.   Something
>>that many developers and customers would appreciate.
>
>I believe that Microsoft's IP claims only apply to SDP over IB -- I
>don't believe SDP over iWarp is affected.  I don't know how the RDMA
>verbs moving towards a hardware independent (wrt IB vs. iWarp) affects
>the IP claims, but it should certainly make things interesting if a
>single SDP code base can work over both IB and iWarp.

SDP is SDP and it isn't just restricted to IB.   I'll leave it to the 
lawyers to sort it out but having a single SDP with minor code execution 
path deltas for the IB-specifics isn't that hard to construct.  It has been 
done on other OS already.

Mike

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20060713/68d200ba/attachment.html>


More information about the ewg mailing list