[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [mpi-21] ABI (was: Call for MPI 2.2 and 3.0...)



Rajeev Thakur wrote:
More than holes in the standard, it is because people (sometimes
unknowingly) assume things not guaranteed by the standard, e.g., code that
relies on MPI_Send being  nonblocking or MPI_Get being blocking. So it's
more often user error.

I agree, but a standard that is prone to this type of wrong assumptions is going to have portability problems forever. It is specially true for reasonable assumptions. For example, is it reasonable to assume that you can read a buffer that is being sent ? Yes, everybody would naturally think it's just fine. You cannot blame the users for making reasonable assumptions, or not knowing the standard by the letter. Well, you can actually blame them but it is not the point :-)


Another example is the classic blocking/non-blocking behavior based on message size. This threshold is not defined in the spec but the standard says "don't assume one way or the other". You can actually fix it by defining this threshold, or completely removing the standard mode. Sometimes, removing choices is the best way to easily force people do to the right thing.

It's tough to remove things from an existing standard, though, but I think it could be acceptable to not expect automatic compliance with this new revision, unlike MPI-1 codes that were automatically MPI-2 compliant. It could be done.

Patrick