On Jan 10, 2014, at 15:31 , Jeff Squyres (jsquyres) <jsquyres_at_[hidden]> wrote:
> On Jan 10, 2014, at 9:19 AM, George Bosilca <bosilca_at_[hidden]> wrote:
>> However, one should keep in mind that MPI_Comm_free does not have to be a collective function, thus making any type of collective assumption/communications inside the attribute destructor might lead to deadlocks in future versions.
> Actually, MPI-3 defines MPI_COMM_FREE as collective (p248:23).
As I said, this is the case today. There are ongoing discussion in the MPI Forum to relax the wording of the MPI_Comm_free as most of the MPI implementations do not rely on the strict collective behavior of the MPI_Comm_free (in the sense that it has to be called by all processes but not necessarily in same time).
>> In other words if the only thing you do in the attribute descriptor is tearing down locally posted requests, then you are safe. If you send data using the communicator then youre definitively playing dangerously with the safety line.
> I still agree with this point, though even though COMM_FREE is collective, you could still get into ordering / deadlock issues if you're (effectively) doing communication inside it.
As long as the call is collective and the same attributes exists on all communicators I dont see how the deadlock is possible. My wording was more a precaution for the future than a restriction for today.
> Jeff Squyres
> For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
> devel mailing list