comex_barrier is an expensive O(n) operation. It is a nontrivial overhead to add to parmci_msg_barrier, particularly since the most common use of this operation in GA is immediately after ARMCI_AllFence, which does all of the synchronization that comex_barrier does.
In the original ARMCI source code, ARMCI msg collectives were equivalent to MPI when MPI was used.
In ARMCI (armci/src/collectives/message.c):
Now, in Comex (comex/src-armci/message.c):
comex_barrier is an expensive O(n) operation. It is a nontrivial overhead to add to
parmci_msg_barrier
, particularly since the most common use of this operation in GA is immediately afterARMCI_AllFence
, which does all of the synchronization thatcomex_barrier
does.