Gijsbert Wiesenekker wrote:
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
<mailto: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 <mailto: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 <http://www.cineca.it/> Tel: +39
051 6171722
g.fatigati [AT] cineca.it <http://cineca.it/>
_______________________________________________
users mailing list
us...@open-mpi.org <mailto: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
Correct the completion of an MPI_Isend request only say's the message
buffer is no longer needed. You could use synchronous mode sends
MPI_Issend which requests will complete when the message is being
processed at the destination (that is matched with a received).
--
Oracle
Terry D. Dontje | Principal Software Engineer
Developer Tools Engineering | +1.650.633.7054
Oracle * - Performance Technologies*
95 Network Drive, Burlington, MA 01803
Email terry.don...@oracle.com <mailto:terry.don...@oracle.com>