[libfabric-users] connection-less endpoints and TCP services
Hefty, Sean
sean.hefty at intel.com
Thu Mar 30 06:59:01 PDT 2017
> Let me explain with a minimal example: 3 processes, mapped to
> node:svc1,
> node:svc2, node:svc3 (same node, different services). All processes
> have
> the same AV table:
> 1 -> node:svc1
> 2-> node:svc2
> 3 -> node:svc3
>
> On process 1, how do I create an EP that receives all data sent to AV
> index 1 by any other process?
>
> In connection-oriented scenario, I would do that by calling fi_getinfo
> with:
> node=NULL, service=svc1, flags=FI_SOURCE
Add node = node address, and this is what you want. Just create an active endpoint -- fi_endpoint() -- with the result. The FI_SOURCE flag just indicates that the <node, service> parameters are local addresses. If you set node = NULL, you'll get back a wildcard address. That's still usable, but you won't know what actual address was assigned until you allocate the endpoint and enable it. For example:
fi_endpoint(...);
fi_enable(...);
fi_getname(...); <- this returns that actual address that was assigned
The result of fi_getname() can be used to populate the remote AVs.
- Sean
More information about the Libfabric-users
mailing list