[libfabric-users] no perf effect from FI_MORE with verbs; ofi_rxm provider?

Hefty, Sean sean.hefty at intel.com
Wed Jan 29 09:01:21 PST 2020

> Is there a way to tell from the information returned by fi_getinfo() whether one should
> expect any benefit from FI_MORE with the provider one is using?  I don't see anything,

No - this flag is merely an optimization that a provider _may_ act upon.

> and none of the provider man pages seem to mention it, at least in the v1.8.x branch
> I've built from.  I'd prefer to avoid doing the effective equivalent of 'if
> (!usingVerbsProvider) { /* do FI_MORE stuff */ ...}', unless I absolutely have to.
> (I'm writing middleware, a multinode communication implementation for the Chapel
> language runtime, which I want to work over as wide a range of networks and providers
> as possible.)

My recommendation is to write the app to always use FI_MORE where it makes sense, or just always ignore the flag.  There should not be a performance penalty if it is set but ignored by the provider.

> Sure can, although there will be a delay because right now the initiator for my
> fi_writemsg() calls seems to be concluding that all of them have arrived at the target
> before that's actually happened, so I'll have to fix that first.  I don't know if
> that's because I'm mis-counting transactions (doesn't look like it) or have
> misunderstood the completion semantics.  I'm throwing
> FI_DELIVERY_COMPLETE|FI_COMPLETION in my  hints->tx_attr->op_flags, and believe that
> means that once the initiator sees the CQ event from a fi_writemsg() the processor on
> the target side must see the written bytes if it loads from the target memory.  (In
> some cases it's seeing the old memory contents.)

Your understanding looks correct.

This could be a bug in the provider implementing DELIVERY_COMPLETE correctly.  Note that delivery complete isn't supported natively by most hardware, and requires software based acks in order to meet that guarantee.

Are you using RDM endpoints?

- Sean

More information about the Libfabric-users mailing list