[mpich-discuss] How to use non-blocking send/receive without calling MPI_Wait

Balaji, Pavan balaji at anl.gov
Fri Apr 3 13:29:07 CDT 2015


No, the request object will get released fine when the data transfer completes.  It is a correct program.  What I meant is that, since the application never knows when the request completes, the user application cannot use the data in any meaningful way, IMO.

  -- Pavan

> On Apr 3, 2015, at 12:13 PM, Lei Shi <lshi at ku.edu> wrote:
> 
> Pavan,
> 
> Thanks. You mean since I don't call MPI_Wait at all, the request object does not get a chance to be released by the MPI library? Right? I will give it a try. Thanks again!
> 
> 
> On Fri, Apr 3, 2015 at 10:12 AM, Balaji, Pavan <balaji at anl.gov> wrote:
> 
> You can free the request with MPI_Request_free if you don't want to wait on it.  I have no idea how you'll write a correct program without waiting for receive completions at least, though.
> 
>   -- Pavan
> 
> > On Apr 2, 2015, at 11:44 PM, Lei Shi <lshi at ku.edu> wrote:
> >
> > Hi Junchao,
> >
> > Thanks for your reply. For my case, I don't want to check the data have been received or not. So I don't want to call MPI_Test or any function to verify it. But my problem is like if I ignore calling the MPI_Wait, just call Isend/Irev, my program freezes for several sec and then continues to run. My guess is probably I messed up the MPI library internal buffer by doing this.
> >
> >
> > On Thu, Apr 2, 2015 at 7:25 PM, Junchao Zhang <jczhang at mcs.anl.gov> wrote:
> > Does MPI_Test fit your needs?
> >
> > --Junchao Zhang
> >
> > On Thu, Apr 2, 2015 at 7:16 PM, Lei Shi <lshi at ku.edu> wrote:
> > I want to use non-blocking send/rev MPI_Isend/MPI_Irev to do communication. But in my case, I don't really care what kind of data I get or it is ready to use or not. So I don't want to waste my time to do any synchronization  by calling MPI_Wait or etc API.
> >
> > But when I avoid calling MPI_Wait, my program is freezed several secs after running some iterations (after multiple MPI_Isend/Irev callings), then continues. It takes even more time than the case with MPI_Wait.  So my question is how to do a "true" non-blocking communication without waiting for the data ready or not. Thanks.
> >
> >
> > _______________________________________________
> > discuss mailing list     discuss at mpich.org
> > To manage subscription options or unsubscribe:
> > https://lists.mpich.org/mailman/listinfo/discuss
> >
> >
> > _______________________________________________
> > discuss mailing list     discuss at mpich.org
> > To manage subscription options or unsubscribe:
> > https://lists.mpich.org/mailman/listinfo/discuss
> >
> > _______________________________________________
> > 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
> 

--
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