MPI контент / скелет для переменного механизма?

Мне интересно, каковы преимущества для Skelton & реализация содержимого функций MPI, таких как предоставляемые в Boost.MPI.
Насколько я понял это скелет&контентный подход ТОЛЬКО выгоден, если
сообщение имеет фиксированный размер произвольного типа, и это сообщение необходимо отправить несколько раз с различным содержанием.

Так скелет&контент не работает в следующем случае:

std::list<int> l;

// Exchange Skeleton mpi::skeleton(l)

// Send Content mpi::content(l) (but modify the size of the list, so sending once 10 element and in the next time 2 elements, for example)

Boost отправляет содержимое путем сериализации данных и десериализации их на другом конце. (Я предполагаю, что он отправит данные с типом MPI_BYTE и обработкой порядка байтов как-нибудь?)

Два вопроса:

  1. Почему необходима отправка скелета для любого сериализуемого типа (также может быть объектом-оберткой сериализации): Может ли Boost не просто десериализовать (учитывая ту же обертку сериализации, которая обеспечивает десериализацию) полученные данные без необходимости в скелете?

Так что скелтон&контентный подход выгоден в том смысле, что динамические размеры списков и т. д. НЕ требуют повторной сериализации при последующих вызовах. Таким образом, реальное преимущество заключается в том, что сериализованное сообщение (отправка контента) меньше со скелетом&контентный подход. И если сообщение отправляется несколько раз, это выгодно.

Таким образом, чтобы заключить, если сообщение является очень динамичным (изменение формы) и только одно сообщение отправляется скелет&содержание не должно применяться.

Это верно?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …