Я знаю, что MPI_Send()
- это блокирующий вызов, который ожидает, пока безопасно изменить буфер приложения для повторного использования. Чтобы сделать вызов отправки синхронным (должно быть рукопожатие с получателем), нам нужно использовать MPI_Ssend()
. Я хочу знать разницу между ними. Предположим, мне нужно отправить фиксированное количество байтов между процессами, какой из них должен занять больше времени?
Со мной код хорошо работает с вызовом MPI_Send(), но бесконечно ожидает MPI_Ssend(). Какие могут быть возможные причины?
И самое главное, я почти уверен, что данные поступают в принимающий процесс при использовании MPI_Send()
, поэтому этот вывод не приводит ни к чему в пользу ожидания рукопожатия при использовании MPI_Ssend()
.
Или я могу сделать вывод: с помощью MPI_Send()
вы можете отправлять данные в процесс self, но не можете с помощью MPI_Ssend()
?