Сообщение переменного размера в MPI - PullRequest
3 голосов
/ 25 ноября 2010

Есть ли библиотечный вызов, который позволял бы отправлять / получать сообщения переменного размера с использованием MPI?

Обходным путем было бы отправить размер данных в первом сообщении и следовать за ним с фактической полезной нагрузкойно мне было интересно, существует ли соглашение для объединения этих двух отдельных сообщений.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2010

Вы также можете использовать MPI_Probe или MPI_Iprobe вместо публикации получения с MPI_Recv или MPI_Irecv.Probe / Iprobe может иметь недостатки производительности, если используется неправильно, но они являются одним из распространенных подходов к работе с сообщениями переменного размера.Кроме того, будьте осторожны в многопоточной среде, потому что Probe / Iprobe не безопасны в некоторых многопоточных контекстах.См. Hoefler и др. для подробного обсуждения этих проблем и набросков исправления (Mprobe), которые могут быть включены в MPI-3.

2 голосов
/ 25 ноября 2010

Счетчик, предоставленный MPI_Recv, является только верхней границей.MPI_Get_count может использоваться, чтобы найти точное количество полученных предметов.

Вид подобных сокетов, я думаю.

...