>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.
2010/5/11 Gijsbert Wiesenekker <gijsbert.wiesenekker_at_[hidden]>
> 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?
> users mailing list
Ing. Gabriele Fatigati
CINECA Systems & Tecnologies Department
Via Magnanelli 6/3, Casalecchio di Reno (BO) Italy
www.cineca.it Tel: +39 051 6171722
g.fatigati [AT] cineca.it