Dear list,

from some small tests I ran it appears to me that progress in passive target sided communication is only guaranteed if the origin issues some "deeper" MPI function (i.e., a simple MPI_Comm_rank is not sufficient). Can someone confirm this experimental observation?

I have two questions concerning this behavior:

a) Is this really standard conform? The MPI standard guarantees progress of one-sided communication (if I understand the term "progress" correctly ; the relevant page of the MPI 2.2 standard is 369). Unless it is also specified that a process must eventually exit with a call to MPI_Finalize (I couldn't find such a requirement), progress for RMA access to a passive server which does not participate actively in any MPI communication is not guaranteed, right?
(Btw. mvapich2 has the same behavior in this regard)

b) Is there any plan to change this behavior? I am working on an application featuring a badly balanced load between processes. The idea here was to use one-sided communication and hide the load-imbalance by letting idle threads "work ahead" other threads. However, this assumes that progress at these processes is independent of the target side.

Thanks for your help,
Dorian

PS: I just took a look at "Analysis of Implementation Options for MPI-2 One-Sided" which answers some of my questions. Nevertheless I'm sending the mail in hopes of triggering discussion about this.

Reply via email to