Во-первых, обратите внимание, что подход действителен для однородных кластеров с идентичными архитектурами.
Для общего случая и высокой стабильности выберите безопасный транспортный протокол, такой как JSON или протокольные буферы.
В-третьих, boost :: serialization в stringstream может оказаться полезным.Аналогичные ограничения, но библиотеки не нужны.
В любом случае, теперь ответ: при отправке структур, как вы хотите, делайте это с типом данных MPI_CHAR и считайте N * sizeof (Struct)
Для получениялибо вы уже знаете N, либо используете MPI_Probe и извлекаете счетчик из сообщения.Это будет количество байтов.Выделите в нем буфер такого размера, MPI_RECV, и переинтерпретируйте его как массив Buffer посредством приведения.
Обоснование - использовать MPI_CHAR, так как структура может иметь заполнение.