Subject: Order semantics, yet again

From: [email-masked] (Marc Snir)
Date: Tue, 28 Sep 93 19:52:02 -0500

-:) -:) -:) -:) -:)

Consider the following program

process 0

MPI_isend(a,1, MPI_REAL, 1, 0, MPI_WORLD)
MPI_isend(b,1, MPI_REAL, 1, 0, MPI_WORLD)

process 1

MPI_irecv(a,1, MPI_REAL, 0, MPI_ANYTAG, MPI_WORLD)
MPI_irecv(b,1, MPI_REAL, 0, 0, MPI_WORLD)

If the two sends of process 0 are matched by the two receives of
process 1, then 1st send should match 1st receive and second send
should match 2nd receive.  This precludes an implementation where
receives with fixed tag are posted in a different structure
than receives with wildcard tags, and where the first structure is
always searched first when a message arrives (with such
implementation the first send could match the second receive, if it
arrives after both receives where posted).

Some implementers feel this could lead to significant performance
loss, since an incoming message cannot be matched to a receive with
a determinate tag and source, without checking for earlier receives
with wildcard parameter(s) that might also also match the arriving
message.  It runs against our philosophy not to penalize the more
frequent case (no wildcards), where a hashing algorithm can be used
for fast matching of sends and receives in order to handle the less
frequent case (wildcards).

The alternative is to specify that order is preserved only
for sends (receives) with identical destination, tag
and communicator parameters.   I think we have already discussed
this issue, but I promised to make a further round because of the
potential impact.

Anybody feeling strongly that we should not weaken the order
requirement (in the sense provided by the alternative definition)?
Any other implementor feeling a weaker requirement would make its
life simpler (or faster)?  Anybody cares?

---

From: [email-masked]
Date: Tue, 28 Sep 93 17:11:11 -0700

We (Intel) have an implementation that will work better with the relaxed
ordering requirement, and proposed implementations that would be even more
sensitive. I support making the rules such that order is guaranteed only for
exactly matching destination, tag, and communicator parameters.

Paul Pierce