Обмен данными с нулевым счетом MPI - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть несколько вопросов относительно обмена данными с нулевым счетом (скажем, по MPI_Send и MPI_Recv), на которые у меня возникают проблемы с поиском ответов в документах MPI:

1) Как я понимаю, это законно (поСтандарт MPI) иметь счет, равный 0. Или это определяется реализацией?

1a) В функциях, подобных MPI_Gatherv, может ли счетчик быть нулевым?

2) Если счет равен нулю, буфер все еще должен быть действительным указателем?Или это может быть NULL / неинициализированный?

3) Даже если счетчик равен 0, существует некоторая связь по сети, то есть некоторые заголовки / метаданные все еще передаются.Я прав?

1 Ответ

0 голосов
/ 02 декабря 2018

1) Допустимо, чтобы счетчик был равен нулю.

1a) Законно, что некоторые значения равны нулю в MPI_Gatherv()MPI_Scatterv(), MPI_Alltoallv () `и друзьях)

2) Стандарт не обязывает указатель быть действительным, если счетчик равен нулю

3) Нулевой размер сообщения - это сообщение, и, как прямое следствие, происходит обмен некоторыми метаданными.MPI_Recv(..., count=0, ...) возвращается только после того, как сообщение нулевого размера было получено (и, следовательно, отправлено), и это не могло бы произойти, если данные не были отправлены.

...