Мне интересно, каковы преимущества для 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 и обработкой порядка байтов как-нибудь?)
Два вопроса:
Так что скелтон&контентный подход выгоден в том смысле, что динамические размеры списков и т. д. НЕ требуют повторной сериализации при последующих вызовах. Таким образом, реальное преимущество заключается в том, что сериализованное сообщение (отправка контента) меньше со скелетом&контентный подход. И если сообщение отправляется несколько раз, это выгодно.
Таким образом, чтобы заключить, если сообщение является очень динамичным (изменение формы) и только одно сообщение отправляется скелет&содержание не должно применяться.
Это верно?
Задача ещё не решена.
Других решений пока нет …