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