Which MPI implementation for MPI-2? ...

Eray Ozkural exa at kablonet.com.tr
Wed Apr 2 21:20:04 EST 2003


On Wednesday 02 April 2003 23:11, Richard Walsh wrote:
>
> To anyone ...
>
> Somewhat tangentially, but while we are on the subject of one-sided
> communications in MPI-2, am I correct in assuming that this capability
> is implemented as it is in SHMEM ... via communication to/from symmetric
> (or known asymmetric) memory locations inside the companion processes
> memory space.  It would seem to be a requirement for speed and would
> also seem to require the use of identical binaries on each processor
> (and COMMON or static to place data in a symmetric location).
>
> Thanks for your guidance ...

I think that's the idea but it isn't shared memory! 

http://www.mpi-forum.org/docs/mpi-20-html/node117.htm#Node117

Remote Memory Access ( RMA) extends the communication mechanisms of MPI by 
allowing one process to specify all communication parameters, both for the 
sending side and for the receiving side. 
....

Evidently, you cannot treat RMA like shared memory. What RMA really is what 
shared memory should have been (in a sense):
   The design is similar to that of weakly coherent memory systems: correct 
ordering of memory accesses has to be imposed by the user, using 
synchronization calls; the implementation can delay communication operations 
until the synchronization calls occur, for efficiency. 

Using RMA you have to design your algorithm like before however it is much 
easier to cope with dynamic communication. In usual MPI-1 code you would have 
to specify tons of custom async. send/recv. routines, sync. code etc. to 
accomplish the same thing.

So the answer is, yes it's like shared memory but you know that each call 
(put, get, accumulate) will incur a message passing eventually. IMO the 
greatest advantage comes from the (possibly) higher level of abstraction 
attained this way. Of course a nicer thing is the ease of writing in-place 
routines, that could potentially make a difference in a lot of places, for 
example sparse codes like graph partitioning.

What we had thought was perhaps implementing complex parallel algorithms (like 
fold/expand) could be easier with one sided comms.

Thanks,

-- 
Eray Ozkural (exa) <erayo at cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara  KDE Project: http://www.kde.org
www: http://www.cs.bilkent.edu.tr/~erayo  Malfunction: http://mp3.com/ariza
GPG public key fingerprint: 360C 852F 88B0 A745 F31B  EA0F 7C07 AE16 874D 539C

_______________________________________________
Beowulf mailing list, Beowulf at beowulf.org
To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf



More information about the Beowulf mailing list