Я написал простой send / recv между двумя процессами. я использую isend
а также irecv
передать сообщение.
На стороне отправителя я фиксирую mpi::request
объект, возвращаемый isend
и использовать его для проверки доставки сообщения. Тем не менее, кажется, что подтверждение (т.е. request.test()
) возвращает действительный status
объект (с status->error == 0
) задолго до irecv
на самом деле выполняется на приемнике (у меня есть сон (20) до irecv
). Из этого я делаю вывод, что статус является показателем доставки (в очередь), а не указанием на то, что сообщение было прочитано?
Возможно, стоит упомянуть, что я использую boost :: mpi, C ++ в Ubuntu.
Задача ещё не решена.
Других решений пока нет …