From: Douglas Gregor Date: January 9, 2008 4:51:36 PM CST To: mpi-21@XXXXXXXXXXXXX Subject: RE: [mpi-21] Proposal EH2: add const keyword to the C bindings Reply-To: mpi-21@XXXXXXXXXXXXX On Wed, 2008-01-09 at 14:28 -0800, Bronis R. de Supinski wrote: > Doug: >> I don't understand how you came to the conclusion that this >> restriction >> is not violated, unless some of the tools you mentioned do this check >> explicitly. > > Because I have seen a lot of MPI code and I have discussed it with > many MPI users. Sometimes, I met with surprise about it. Most are > aware of it. Frankly, this restriction is not half so hard for users > to understand as it is made out to be. Okay. >> Well, now you know that at least one person slipped on it. > > OK. How hard is it for you to fix? Is it really worth a > potential performance penalty? It will affect the performance of my code to fix it. The pattern I have here is that I'm sending the same buffer to a subset of the processes within a communicator. If this restriction is lifted, I can do that with a bunch of MPI_Isends to the various processes followed by a MPI_Waitall. To fix this code, I need to either clone the buffer N times (ouch!) or do N MPI_Sends in succession. > While the argument to "fix" it is that there is no penalty, > the argument that there are no errors is at least as valid. Well, perhaps now we have a new argument to fix it: by lifting this restriction, I can write some obvious code that performs better than the workaround I would have to do to avoid tripping over this restriction. I don't recall seeing a definitive answer to this question: is there any MPI implementation in use today that takes advantage of the restriction on send buffer access? > My point ultimately is that both sides of this argument have > validity. There are many things about MPI that the choice is > less ambiguous. We should spend our time on them. That's far easier to say when the standard already agrees with you position ;) - Doug