Re: [Mpi3-rma] Dynamic windows example
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, Torsten -- 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
participants (1)
-
Torsten Hoefler