[Chapel Merge] In comm=ofi, use just one receive endpoint per loc

Branch: refs/heads/main
Revision: c0911e5
Author: gbtitus
Log Message:

Merge pull request #17924 from gbtitus/ofi-single-rx-ep

In comm=ofi, use just one receive endpoint per locale instead of two.

(Reviewed by @jhh67.)

The ofi comm layer has long had two receive endpoints for each locale:
one for messaging (Active Messages, i.e. on-stmts) and one for RMA and
atomics. We originally did this for load spreading. We discovered
quite a while ago that such load spreading was unnecessary and in fact
that having two endpoints made things more complicated no matter whether
progress was automatic or manual, but the code was working and there
were more pressing things to deal with, so we left things as they were.
Here, drop back to just one receive endpoint per locale for all kinds of

While here I also removed support for completion counters (vs. queues)
for the receive endpoints. For received AMs we need CQ events in order
to tell where the messages landed, and for received RMA and atomics we
don't make use of target-side events at all, so a receive CQ is the only
thing that makes sense.

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

Compare: https://github.com/chapel-lang/chapel/compare/40f98d45a388...c0911e556eff