However, depending on the size of the message this might not be true. For large messages, in order to keep the memory usage on the receiver at a reasonable level, a rendezvous protocol is used. The sender [after sending a small packet] wait until the receiver confirm the message exchange (i.e. the corresponding receive operation has been posted) to send the large data. Using MPI_Isend can lead to longer execution times, as the real transfer will be delayed until the program enter in the next MPI call.
In general, using non-blocking operations can improve the performance of the application, if and only if the application is carefully crafted.
george. On Oct 14, 2007, at 2:38 PM, Jeremias Spiegel wrote:
Hi,I'm working with Open-Mpi on an infiniband-cluster and have some strange effect when using MPI_Isend(). To my understanding this should always be quicker than MPI_Send() and MPI_Ssend(), yet in my program both MPI_Send() and MPI_Ssend() reproducably perform quicker than SSend(). Is there somethingobvious I'm missing? Regards, Jeremias _______________________________________________ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users
smime.p7s
Description: S/MIME cryptographic signature