[mpich-discuss] How to terminate MPI_Comm_accept
Balaji, Pavan
balaji at anl.gov
Wed Oct 8 15:07:29 CDT 2014
Can you send us a simple program that reproduces the issue?
— Pavan
On Oct 8, 2014, at 2:54 PM, Roy, Hirak <Hirak_Roy at mentor.com> wrote:
> Hi Pavan,
>
> I even tried duping the communicator (MPI_COMM_SELF à DUP1, DUP2) before I do any kind of MPI calls.
> Still it does not work.
>
> Thanks,
> Hirak
>
>
>
> You cannot do a Comm_dup when another thread is doing a collective call on the same communicator (e.g., Comm_accept).
>
> On Oct 8, 2014, at 2:36 PM, Roy, Hirak <Hirak_Roy at mentor.com> wrote:
>
> > Hi Pavan,
> >
> > I tried doing dup on both sides as well as on the client side only.
> > Both cases, it did not work.
> >
> > Thanks,
> > Hirak
> >
> > Here is the server-side
> >
> > MPI_Comm dupCom ;
> > MPI_Comm_dup (MPI_COMM_SELF, &dupCom);
> > do {
> > MPI_Comm newComm ;
> > MPI_Comm_accept (m_serverPort.c_str(), MPI_INFO_NULL, 0, dupCom, &newComm);
> > int buf = 0 ;
> > MPI_Status status ;
> > Log ("Waiting on receive");
> > MPI_Recv(&buf, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, newComm, &status);
> > Log ("Receive complete");
> > if (status.MPI_TAG == MPI_MSG_TAG_NEW_CONN) {
> > m_clientComs[m_clientCount] = newComm ;
> > m_clientCount++;
> > } else if (status.MPI_TAG == MPI_MSG_TAG_SHUTDOWN) {
> > Log ("Shutdown");
> > MPI_Comm_disconnect (&newComm);
> > Log ("Disconnect");
> > break;
> > } else {
> > Log ("Unmatched Receive");
> > }
> > } while(1) ;
> >
> >
> >
> >
> > Are you doing MPI_Comm_dup while the other thread is doing MPI_Comm_accept?
> >
> > — Pavan
> >
> >
> > From: Roy, Hirak
> > Sent: Thursday, October 09, 2014 12:55 AM
> > To: discuss at mpich.org
> > Subject: Re: Re: Re: How to terminate MPI_Comm_accept
> >
> > Hi Pavan,
> >
> > Does not work.
> > Crash in nemesis.
> > Sock hangs in MPI_Recv/MPI_Send
> >
> >
> > Thanks,
> > Hirak
> >
> > MPI_Comm newComm ;
> > MPI_Comm dupCom ;
> > MPI_Comm_dup (MPI_COMM_SELF, &dupCom);
> > MPI_Comm_connect (m_serverPort.c_str(), MPI_INFO_NULL, 0, dupCom, &newComm);
> > Log ("Connect to Self");
> > int val = 0 ;
> > MPI_Request req ;
> > MPI_Send(&val, 1, MPI_INT, 0, MPI_MSG_TAG_SHUTDOWN, newComm);
> > Log ("Successful");
> > MPI_Comm_disconnect(&newComm);
> >
> >
> >
> >
> > On Oct 8, 2014, at 11:41 AM, Roy, Hirak <Hirak_Roy at mentor.com> wrote:
> > > Is there any way to come out of the blocking accept?
> >
> > You can dup MPI_COMM_SELF and do the connect using that other communicator.
> >
> > — Pavan
> >
> > --
> >
> > _________________________
>
> _______________________________________________
> discuss mailing list discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
--
Pavan Balaji ✉️
http://www.mcs.anl.gov/~balaji
_______________________________________________
discuss mailing list discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss
More information about the discuss
mailing list