[Mpi-forum] Question about the semantics of MPI_Comm_disconnect
Rajeev Thakur
thakur at mcs.anl.gov
Wed Nov 13 19:09:43 CST 2013
As George said, it seems to be covered by lines 29-40 on pg 399 and 35-40 on 400.
Rajeev
On Nov 13, 2013, at 3:00 PM, Jeff Squyres (jsquyres) <jsquyres at cisco.com> wrote:
> On Nov 12, 2013, at 5:40 PM, Rajeev Thakur <thakur at mcs.anl.gov> wrote:
>
>> Think of Comm_disconnect as "whatever connection was there between client and server is gone".
>
>
> Rajeev --
>
> This sentence has been bugging me, and I just figured out why.
>
> I've always thought of COMM_DISCONNECT just as you describe: whatever connection was there between client and server is gone. But what about other types of MPI handles -- like MPI_File and MPI_Window? For example:
>
> -----
> MPI_Comm_spawn(..., &child);
> MPI_Intercomm_merge(child, 0, &child_intra);
> MPI_File_open(child_intra, ..., &file);
> MPI_Comm_disconnect(&child_intra);
> MPI_Comm_disconnect(&child);
> -----
>
> At this point, all communicators between parent and child are gone, but there's still a File (the same example could be done with an RMA window).
>
> So the processes are *not* actually disconnected (in the MPI sense of the word "disconnected). Indeed, in the above example, if there was no File, you still have to do *2* disconnects before the parent and child are truly disconnected.
>
> Hence, I think that this is a very poorly named function -- it *doesn't* necessarily disconnect MPI processes. It really performs and operation that is something like MPI_COMM_FREE_WAIT.
>
> I wonder if this is worth an AtoU...
>
> --
> Jeff Squyres
> jsquyres at cisco.com
> For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
>
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
More information about the mpi-forum
mailing list