I consider libfabric to be middleware that supports high performance communications between connected processors.  I do not consider it to be an IPC since to me that has typically been implemented over sockets and used for application to application communication within a processor or between processors for control data, i.e. not bulk data but that could just be my narrow view of the world.<div><br></div><div>Arnold<br><br>On Thursday, August 6, 2015, Paul Grun <<a href="mailto:grun@cray.com">grun@cray.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is a good question Doug.  Others should add, but I would say in your terms that libfabric exposes the details of RDMA, but at a higher level of abstraction than verbs.<br>
<br>
In other words, libfabric contains basically the same set of defined operations -channel operations (e.g. messaging/send receive), memory operations (RMA, nee RDMA), and Atomics.  But it exposes those to the consumer at a higher level of abstraction than does IB.<br>
<br>
User mode things like MPI are expected to be consumers of libfabric.  I'm not sure if ZeroMQ runs in user or kernel space.<br>
-Paul<br>
<br>
-----Original Message-----<br>
From: Oucharek, Doug S [mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'doug.s.oucharek@intel.com')">doug.s.oucharek@intel.com</a>]<br>
Sent: Thursday, August 06, 2015 2:49 PM<br>
To: Paul Grun<br>
Cc: <a href="javascript:;" onclick="_e(event, 'cvml', 'ofiwg@lists.openfabrics.org')">ofiwg@lists.openfabrics.org</a><br>
Subject: Re: [ofiwg] descriptive terminology for libfabric<br>
<br>
I admit I have not spent much time looking at libfabric.  To me, for it to be IPC-focused, it needs to focus on message passing and hide all the details of transport such as RDMA mechanics.  Examples are MPI or ZeroMQ.   Is libfabrics like this or is it more like IB verbs where the programmer is subjected to the ugly details of RDMA?<br>
<br>
Doug<br>
<br>
On Aug 6, 2015, at 2:39 PM, Paul Grun <<a href="javascript:;" onclick="_e(event, 'cvml', 'grun@cray.com')">grun@cray.com</a><mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'grun@cray.com')">grun@cray.com</a>>> wrote:<br>
<br>
Does anybody object to the shorthand description of libfabric as “an API designed to support user mode IPC operations”?   I am particularly interested if I am misusing the expression “IPC” here, which it seems to me describes perfectly what is happened in e.g. MPI (but then again, I’m not a computer scientist, so I may be misusing it).<br>
<br>
No need to be overly pedantic, but there is a need for accuracy in language.<br>
<br>
Thanks,<br>
-Paul<br>
<br>
Cray Inc.<br>
Office:    (503) 620-8757<br>
Mobile:  (503) 703-5382<br>
<br>
_______________________________________________<br>
ofiwg mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'ofiwg@lists.openfabrics.org')">ofiwg@lists.openfabrics.org</a><mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'ofiwg@lists.openfabrics.org')">ofiwg@lists.openfabrics.org</a>><br>
<a href="http://lists.openfabrics.org/mailman/listinfo/ofiwg" target="_blank">http://lists.openfabrics.org/mailman/listinfo/ofiwg</a><br>
<br>
_______________________________________________<br>
ofiwg mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'ofiwg@lists.openfabrics.org')">ofiwg@lists.openfabrics.org</a><br>
<a href="http://lists.openfabrics.org/mailman/listinfo/ofiwg" target="_blank">http://lists.openfabrics.org/mailman/listinfo/ofiwg</a><br>
</blockquote></div>