[Chapel Merge] Enable address vectors to not be shared by endpoin

Branch: refs/heads/main
Revision: cb1fa03
Author: jhh67
Link: Unavailable
Log Message:

Merge pull request #18342 from jhh67/T1376

Enable address vectors to not be shared by endpoints

[Reviewed by @gbtitus]

Some providers, such as EFA, do not allow address vectors to be shared across endpoints. In general we want to share address vectors to reduce overhead. If address vectors cannot be shared then an address vector must be created for each endpoint. It's complicated somewhat by scalable endpoints. In that case there are multiple transmit contexts for the same endpoint, but the transmit contexts can share the same address vector because there is only a single endpoint.

Resolves Cray/chapel-private#1376 and closes Cray/chapel-private#2460.

Modified Files:
M runtime/src/comm/ofi/comm-ofi.c

Compare: https://github.com/chapel-lang/chapel/compare/17c4953d8f33...cb1fa03bb071