Yes, it's correct, but you can use number of MPI_Test fails on MPI_ISend routines to define a limit. Remember that if you use large buffer (more than eager_limit) send many times in a few time, maybe it's better to use MPI_Send routine than MPI_ISend, to avoid too much buffer memory copy.
2010/5/11 Gijsbert Wiesenekker <gijsbert.wiesenek...@gmail.com> > > On May 11, 2010, at 9:29 , Gabriele Fatigati wrote: > > Dear Gijsbert, > > > >Ideally I would like to check how many MPI_Isend messages have not been > processed yet, so that I can stop >sending messages if there are 'too many' > waiting. Is there a way to do this? > > > you can check number of message pending simply using MPI_Test function. It > return false if the request of message is in pending status. The difference > with MPI_Wait is in the behaviour of these two routines: MPI_Wait is > blocking, MPi_Test, check and returns immediately. > > Regards. > > 2010/5/11 Gijsbert Wiesenekker <gijsbert.wiesenek...@gmail.com> > >> An OpenMPI program of mine that uses MPI_Isend and MPI_Irecv crashes after >> some non-reproducible time my Fedora Linux kernel (invalid opcode), which >> makes it hard to debug (there is no trace, even with the debug kernel, and >> if I run it under valgrind it does not crash). >> My guess is that the kernel crash is caused by OpenMPI running out if >> memory because too many MPI_Irecv messages have been sent but not been >> processed yet. >> My questions are: >> What does the OpenMPI specification say about the behaviour of MPI_Isend >> when many messages have been sent but have not been processed yet? Will it >> fail? Will it block until more memory becomes available (I hope not, because >> this would cause my program to deadlock)? >> Ideally I would like to check how many MPI_Isend messages have not been >> processed yet, so that I can stop sending messages if there are 'too many' >> waiting. Is there a way to do this? >> >> Regards, >> Gijsbert >> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users >> >> > > > -- > Ing. Gabriele Fatigati > > Parallel programmer > > CINECA Systems & Tecnologies Department > > Supercomputing Group > > Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy > > www.cineca.it Tel: +39 051 6171722 > > g.fatigati [AT] cineca.it > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users > > > I thought that successful returns from MPI_Wait or MPI_test after an > MPI_Isend only meant that the message was received successfully by OpenMPI > and that the buffer could be reused, and not that it was successfully > received by the other processor. Is that correct? > > Gijsbert > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users > -- Ing. Gabriele Fatigati Parallel programmer CINECA Systems & Tecnologies Department Supercomputing Group Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy www.cineca.it Tel: +39 051 6171722 g.fatigati [AT] cineca.it