[libfabric-users] Connection-based vs Connection-less

Hefty, Sean sean.hefty at intel.com
Fri Sep 13 08:47:27 PDT 2019

> Thank you for your explanation.     It sounds like the connection-based or -less
> concept in libfabric is very different from other networks.  Is there no other
> significant difference other then how the endpoints are configured?  What are the
> advantages/disadvanatges of using connection-based vs connection-less communication?

The connection-oriented and connectionless concepts in libfabric are very similar to other definitions at the *transport* level.  It's best to compare them to TCP and UDP based sockets.

> Regarding the AV, I still don't get the "purpose".  I know it hides network specific
> details.     But why did the libfabric designers expose the AV to the end user?
> When I use the AV, I don't explicitly input those network specific details: that all
> happens behind the scenes.  So it seems that the AV could also be hidden behind the
> scenes.  What advantage is gained by exposing the AV to the user? (Note: I'm not
> arguing against the API definition.  I just want to know the motivation behind the
> API).

There are a couple of answers here.  The simplest is that an application may allocate different endpoints, each of which communications with a different set of peers.  Many applications assign each peer an index (or rank) and reference the peer using that index.  This is simpler for the application developer and avoids passing large data structures across the API.  So, peer 1 for endpoint 1 may be different than peer 1 for endpoint 2.  The AV provides the abstraction needed to support that.

Another reason it is exposed is that the AV may map to a hardware resource, or a resource that is shared across processes (via shared memory).

- Sean

More information about the Libfabric-users mailing list