Exactly.
> If the target is the same as the source does "magic" swizzle the address
bits?
If you do a put to yourself, the data that you pass to MPI_PUT() gets blasted
into the buffer that MPI_SHMALLOC() returned to you. If you do a get from
yourself, the data in your own MPI_SHMALLOC() buffer is copied into the buffer
that you pass to MPI_GET().
> Do all ranks get the same value returned by MPI_SHMALLOC()?
I would imagine that this is implementation dependent. The pointer returned by
MPI_SHMALLOC() is for local use only; no other rank should ever have any reason
to know what it is.
> Can the address returned by MPI_SHMALLOC() be used locally without MPI_PUT()
> or MPI_GET()?
Absolutely; the whole model breaks otherwise. I get a buffer back from
MPI_SHMALLOC(), and as far as I am concerned it is just like a buffer that I
would get from malloc(). I put data into it, read data from it, or whatever.
The only difference is that other ranks are also allowed access to it via
MPI_PUT() and MPI_GET().
> If so, I don't think I like it for a distributed MPP or NOW.
Please elaborate, I don't see the problem yet.
-- Eric Salo Silicon Graphics Inc. "Do you know what the (415)390-2998 2011 N. Shoreline Blvd, 7L-802 last Xon said, just salo@sgi.com Mountain View, CA 94043-1389 before he died?"