Re: Plea for simplicity

Eric Salo (salo@mrjones.engr.sgi.com)
Wed, 1 Nov 1995 18:26:56 -0800

> I assume this means one specific local address returned by MPI_SHMALLOC()
> represents many remote addresses depending on the remote rank used in the
> MPI_PUT() and MPI_GET() calls.

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?"