[Mpi3-rma] Dynamic windows example

Torsten Hoefler htor at illinois.edu
Fri Dec 3 17:26:04 CST 2010

Hi Jim,

> In the process of trying to gain a deeper understanding of the
> dynamic windows proposal I wrote a small distributed linked list
> example.  I've attached the code in case this may be helpful for
> others.  Please feel free to dissect, modify, post questions,
> complaints, etc.
Thanks for sharing your code. It's a good example for a dynamic window
and the use of flush. Did you consider using MPI_Compare_and_swap() for
the pointer chase? This would require another MPI_Get() in case you
didn't get the tail but would allow for much more concurrency than the
lock exclusive version (each lock/unlock incurs one roundtrip latency).

Using MPI_BYTE in the broadcast is also not working in heterogeneous
environments (where you should also compare the sizes of MPI_Aint).

> It might be a stretch, but you could imagine mapping this example to 
> something like spatial decomposition.  For example, in something like 
> Barnes-Hut you need to concurrently insert a pile bodies into a
> shared spatial decomposition octtree.  They need to be appended to
> leaf nodes in the tree which may themselves be getting subdivided as
> other bodies are inserted into the tree and spatial octants overflow.
Yes, that's exactly what it's designed for. It would be good to have
such an example or code.

All the Best,

bash$ :(){ :|:&};: --------------------- http://www.unixer.de/ -----
Torsten Hoefler         | Performance Modeling and Simulation Lead
Blue Waters Directorate | University of Illinois
1205 W Clark Street     | Urbana, IL, 61801
NCSA Building           | +01 (217) 244-7736

More information about the mpiwg-rma mailing list