Replies: 2 comments
-
This has been discussed in today's (11/28/2023) OFIWG meeting. Most of the providers today always send data with the
The term |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I believe that libfabric should add strong words to the documentation with regard to the FI_REMOTE_CQ_DATA flag. If a provider supports passing remote CQ data over its transport then any application calls to fi_senddata, fi_injectdata, fi_tsenddata, fi_tinjectdata, fi_writedata, or fi_inject_writedata along with fi_sendmsg or fi_writemsg when the flag FI_REMOTE_CQ_DATA is set should send CQ data.
Currently the man pages indicate that this flag also applies to the fi_senddata, fi_tsenddata, and fi_writedata calls besides the fi_sendmsg, fi_tsendmsg, and fi_writemsg calls where it is needed. I believe this flag should not apply to fi_senddata, fi_injectdata, fi_tsenddata, fi_tinjectdata, fi_writedata, or fi_inject_writedata (note the inject calls are currently absent from the flag definition anyway). If an application does not want to use CQ data (such as not specifying the flag as part of the op_flags in the fi_getinfo hints) or a provider is known to not support CQ data then it should not make those calls as adding conditional code in a provider to modify the behavior of the call goes against the desire for libfabric to be a high performance communication API.
The man pages should be updated to reflect that an application should not call fi_senddata, fi_injectdata, fi_tsenddata, fi_tinjectdata, fi_writedata, or fi_inject_writedata if application does not intend to actually send CQ data regardless if the provider is known to support sending CQ data or not and that FI_REMOTE_CQ_DATA flag only applies to fi_sendmsg, fi_tsendmsg, and fi_writemsg.
Beta Was this translation helpful? Give feedback.
All reactions