I know MPI_Send()
is a blocking call ,which waits until it is safe to modify the application buffer for reuse. For making the send call synchronous(there should be a handshake with the receiver) , we need to use MPI_Ssend()
.
I want to know the difference between the two. Suppose i need to send fix amount of Bytes among the processes , which one is supposed to take longer time ?
With me the code works well the MPI_Send() call but waiting indefinitely for MPI_Ssend().
What could be the possible reasons ?
And the most important thing is , i am pretty sure the data is being received at the receiving process when using MPI_Send()
,so this inference leads nothing in favor to wait for the handshake when using MPI_Ssend()
.
Or i can make a conclusion : with MPI_Send()
you can send data to the self process but can't using MPI_Ssend()
?